PALplates Revised Architecture

Overall Plan

Java Stuff

Now @showApps command defined in mud, use @showContents (see below in Mud Stuff). init was redefined for Platelets -- it now takes 2 arguments -- the mudobjnum, and the args as parsed from a mudResponse. The first thing in args (usually) is the icon if an icon is expected.

Mud Stuff

In Domisilica db: @display can be used to get info about any part of any object. Use @display-options prefix= to set a prefix for parsing.

In Domisilica db: player class has following structure: player

.... #235 (generic domisilica Player) ...

builder, guest, cyberTest

...

#235 is an ancestor of all the characters I've created, though most of them are programmers (and thus farther removed from it). This makes testing easier.

@audit #2 for a list of the basic objects @showContents now includes the functionality for @showArgs -- @showContents will list all the *visible* contents of that thing in the appropriate way @showContents will list all the objects in thing.property in the appropriate way (this is used for fridge magnets, and for room apps) *note* that can be a name of something, and match_object will then be called to try to figure out what's being referred to. There is no longer a width or height attribute. If you want to specify one, override getArgs(). Default getArgs makes use of the icon property, but you can override that behavior too. I'm trying to automate the integration of exits into room descriptions. In order to do this, I first changed #3:description to call integrate_paragraphs() instead of just looking at a property so that I can automatically generate exits into that property.

How information is broadcasted to interested parties

Every player which inherits from generic domisilica player has a property called connectiontype. The default for that property is "direct". Currently, if the value of that property is anything other than "direct" then the enterfunc and the exitfunc for the room class automatically adds the player to the list of dependents for the room itself and any contents of the room (but not contents of contents of the room).

dependency means that if the thing you are a dependant of broadcasts an event, then you recieve notification of that event. Currently, the only events I've set up are enter and exit events. So, for example, if you enter the kitchen, you get added to the dependency list for the kitchen and the refridgerator. If someone puts a coke in the fridge, then it broadcasts an event_enter. announce_event_enter is called, and the fridge's announce_event_enter property is printed out to you. announce_event_enter and announce_event_exit properties are defined for every container class. Currently, the default for rooms is "", the default for appliances is "ApplianceContentsUpdate(+or-)" and the default for any other container (including people) is "ContentsUpdate(+or-)".

To add a new type of event, add either a property or function named "announce_event_*" and call "broadcast_event_*" when the event occurs, where * is the name of your event.

Java <==> Mud communication


Copyright © 1996 FX Palo Alto Laboratory, Inc. For problems or questions regarding this web contact Jen Mankoff. Last updated July 09, 1996.