| package li.cil.oc.api.network; |
| |
| import li.cil.oc.api.Persistable; |
| |
| /** |
| * This kind of environment is managed by either a compatible inventory, such |
| * as a computer or floppy drive, or by an adapter block or similar. |
| * <p/> |
| * This means its update and save/load methods will be called by their logical |
| * container. This is required for item environments, and for block |
| * environments that cannot be directly integrated into a block's tile entity, |
| * for example because you have no direct control over the block (e.g. what we |
| * do with the command block). |
| * <p/> |
| * You should <em>not</em> implement this interface in your tile entities, or |
| * weird things may happen (e.g. update and save/load being called multiple |
| * times). |
| */ |
| public interface ManagedEnvironment extends Environment, Persistable { |
| /** |
| * Like the method of the same name on tile entities, this is used to |
| * decide whether to put a component in the list of components that need |
| * updating, i.e. for which {@link #update()} should be called each tick. |
| * <p/> |
| * Return false here, if you do not need updates, to improve performance. |
| */ |
| boolean canUpdate(); |
| |
| /** |
| * This is called by the host of this managed environment once per tick. |
| */ |
| void update(); |
| } |