tkMOO-light ..
Other stuff
Some XMCP/1.1 applications, for use with tkMOO-light
I use the term application here to refer to some optional
extension to the client which goes towards making it more useful.
Some of these applications can be seen demonstrated in a simple walkthru. All of the MOO code accesible from
this page can now be used without need for modification on JHCore and
LambdaCore MOOs.
All of the XMCP/1.1 application objects require the XMCP/1.1 driver and
feature object to be installed in the same MOO.
Desktops
One of tkMOO-light's special features a drag and drop desktop
representation of the MOO. Player's inventory (or contents of rooms
etc) represented by coloured icons which may be dragged to other
open desktops. Pick up a text object, drag it to a folder and drop
it, command is sent to the MOO to move the objects and the desktop
is updated, just like typing "put notes in folder". Several
different icons represent different types of object. folders, notes,
whiteboards, rooms, players, general objects.
The client relies upon a suite of objects on the MOO which, in
turn, communicate with the client using XMCP/1.1.
Whiteboards
tkMOO-light's whiteboards allow several people to share the same
drawing, using the MOO to ensure that the separate clients are kept
up to date. Basic graphical forms are provided and a range of
colours. Whiteboards can be used interractively to assist in the
presentation of ideas.
The client relies upon a suite of objects on the MOO which, in
turn, communicate with the client using XMCP/1.1.
A Simple Object Browser
The Object Browser displays the inheritance tree
for objects in the MOO database. Each object number is a hyperlink
in blue which expands the inheritance tree below the selected
generic object. Clicking on a link causes the client to invoke a
short MOO program which delivers data back to the client and which
is used to build the new display. The client has a simple caching
mechanism so that once a link has been selected any subsequent
clicks on that link will recover information from the cache.
Experimental Mail Reader Application
This is a first-pass at trying to understand what would be needed
to build a GUI to the MOO mail system on JHCore. The GUI takes
the form of 3 scrollable windows, at the top is the list of
folders that the player can subscribe to, in the
middle is the list of messages in the selected
folder and at the bottom is the selected message.
Experimental Chess Game Application
This is an attempt to understand what it takes to make the client
support a useful game of chess (short of remote controlling an
xchess
session!). The result is about 300 lines of
Tcl and 200 lines of MOO code. The Tcl code provides the interface
between tkMOO-light's XMCP/1.1 module and the stateless chess
client. The MOO code provides the only persistant state for the
game, the client's internal state is entirely reset with each
request from the server to update the board. This approach also
greatly simplifies the client code.
Experimental @who Widget
The @who widget is designed to receive XMCP/1.1 messages from a
MOO server comprising a list of lines, with each line of data
holding the name, idle time and
location name for each connected user. The MOO
isn't required to do any costly sorting or formatting of the data.
The client takes the data and performs all the necessary formatting
and assigns colours to indicate the degree of user activity.