package ring.commands.annotations;
/**
* Enum describing the available scopes to pull {@link ring.world.WorldObject}s from
* when parsing a command. Every CommandForm must have a scope associated with it. The default
* is Room scope, where WorldObjects are pulled from the Room that the CommandSender is in.
* No-argument command forms, or forms that have no variables, receive special treatment.
* They have no scope, so the Room of the CommandSender is instead passed as an argument.
* <br/><br/>
* The available scopes are ROOM, MOBILE, and SELF. The ROOM scope searches for an initial
* dataset in the Room of the current CommandSender. The MOBILE scope is not yet supported.
* The SELF scope searches for an initial dataset contained within the CommandSender, if
* the CommandSender supports it.
* <br/><br/>
* The RTL_CASCADING and LTR_CASCADING scopes are set automatically by the command parsing
* system and generally should not be used by user code. They are set on non-scoped variables
* to describe which way the variable data cascades down the command chain.
* @author projectmoon
*
*/
public enum Scope {
ROOM,
MOBILE,
SELF,
RTL_CASCADING, //right to left
LTR_CASCADING, //left to right
NO_CASCADING, //no cascade variable found.
}