Return to Object Page

Objects which are aware (made active via the WAKE command) have two datapaths; the command datapath, and the data datapath.  A datapath is a queue or stream of lines.  The command datapath is where the objects gets it's orders to perform.  The default command path is not assigned to a device, therefore the only way to issue commands is to TELL the object commands to perform.  The COMMAND command will assign the command datapath to a device.  The data datapath is a stream from a device, and may be accessed using GETLINE, GETWORD, and GETPARTIAL.  An object may only have one device opened for a datapath.  More information on using devices is in the next section.  This section only details very basic usage of aware objects.

First, set up some things....

/create shelf
/grab shelf
/drop shelf

Create an agent object...

/create agent

Creates an object called agent (contained within MOOSE).  One option is to use the current awareness to control the new object...

/become agent

The become command allows you to change what object is the one considered 'active' for this sentience.  Only objects which can be seen and are inactive are valid targets for this command.  For possible result messages please look at the command reference.  The other method for activating an object is to give it an awareness of its own...

/wake agent

Probably one of the most important actions, WAKE gives an inanimate object a sentience, an ability to perform actions for itself.  An object which has been awoken, cannot be the target of the BECOME command.  The object which has become aware, now can be given commands via the TELL command.

/tell agent /create book
-or-
/agent/create book

Alternativly, if the object name does not overlap a command or macro for the current object, the object may be references as a command.  Anything following the /[object name] part of the command is passed to the object as if TELL was used.  The tell command requires the name of an object and a command line to give that object.  If the object is not aware, or is not visible, a message reflecting this is generated.  Once an object been contacted with a TELL, subsequent command may be shorted to "//".  If the commands to the object cause the object to no longer be 'visible' to the commanding object, the commands will still be told to the object.

//grab book
//leave
//enter shelf

At this point, MOOSE cannot see 'agent' but commands using '//' will still be told to the agent...

//drop book
//leave
/look in shelf

Note this last command has a single '/', this is a command to be performed for the current active object.  MOOSE will look into the shelf and list the contents...

shelf contains: book.

Return to Object Page