################################################################################ # # auxiliary_example.py # # Provides a simple example of how one might install and interact with # auxiliary data in python. This module installs a new piece of auxiliary data, # and sets up two new commands that allow people to interact with that auxiliary # data. # ################################################################################ from mudsys import add_cmd import auxiliary import storage # Example auxiliary data class. Holds a single string variable that # people are allowed to get and set the value of class ExampleAux: # Create a new instance of the auxiliary data. If a storage set is supplied, # read our values from that def __init__(self, set = None): if not set: self.val = "abcxyz" else: self.val = set.readString("val") # copy the variables in this auxiliary data to another auxiliary data def copyTo(self, to): to.val = self.val # create a duplicate of this auxiliary data def copy(self): newVal = ExampleAux() newVal.val = self.val return newVal # returns a storage set representation of the auxiliary data def store(self): set = storage.StorageSet() set.storeString("val", self.val) return set # allows people to peek at the value stored in their ExampleAux data def cmd_getaux(ch, cmd, arg): aux = ch.getAuxiliary("example_aux") ch.send("The val is " + aux.val) # allows people to set the value stored in their ExampleAux data def cmd_setaux(ch, cmd, arg): aux = ch.getAuxiliary("example_aux") aux.val = arg ch.send("val set to " + arg) # install our auxiliary data on characters when this module is loaded. # auxiliary data can also be installed onto rooms and objects. You can install # auxiliary data onto more than one type of thing by comma-separating them in # the third argument of this method. auxiliary.install("example_aux", ExampleAux, "character") # add in our two commands add_cmd("getaux", None, cmd_getaux, "unconscious", "flying", "admin", False, False) add_cmd("setaux", None, cmd_setaux, "unconscious", "flying", "admin", False, False)