X-Git-Url: https://mudpy.org/gitweb?a=blobdiff_plain;f=mudpy%2Fmisc.py;h=b322afc132a0484f35b988670fb930f34d2b4cbd;hb=99d0efca2d35d2c0edcbcb0509f373e2ac297c8b;hp=7478f3fde2ece22f1be9a876b218c079e69bf911;hpb=71b6771e9b93000fbe1529afa0e87f2ce6d90140;p=mudpy.git diff --git a/mudpy/misc.py b/mudpy/misc.py index 7478f3f..b322afc 100644 --- a/mudpy/misc.py +++ b/mudpy/misc.py @@ -91,8 +91,8 @@ class Element: if self.old_style: del self.origin.data[self.key] else: - for facet in self.facethash: - del self.origin.data[".".join((self.key, facet))] + for facet in dict(self.facethash): + self.remove_facet(facet) del self.universe.categories[self.category][self.subkey] del self.universe.contents[self.key] del self @@ -113,9 +113,13 @@ class Element: def remove_facet(self, facet): """Remove a facet from the element.""" - if self.has_facet(facet): - del(self.origin.data[self.key][facet]) - self.origin.modified = True + if self.old_style and self.has_facet(facet): + del self.origin.data[self.key][facet] + elif ".".join((self.key, facet)) in self.origin.data: + del self.origin.data[".".join((self.key, facet))] + if facet in self.facethash: + del self.facethash[facet] + self.origin.modified = True def ancestry(self): """Return a list of the element's inheritance lineage.""" @@ -305,9 +309,9 @@ class Element: def portals(self): """Map the portal directions for an area to neighbors.""" portals = {} - if re.match(r"""^area:-?\d+,-?\d+,-?\d+$""", self.key): + if re.match(r"""^area\.-?\d+,-?\d+,-?\d+$""", self.key): coordinates = [(int(x)) - for x in self.key.split(":")[1].split(",")] + for x in self.key.split(".")[-1].split(",")] offsets = dict( (x, self.universe.contents["mudpy.movement.%s" % x].get("vector") @@ -315,7 +319,7 @@ class Element: for portal in self.get("gridlinks"): adjacent = map(lambda c, o: c + o, coordinates, offsets[portal]) - neighbor = "area:" + ",".join( + neighbor = "area." + ",".join( [(str(x)) for x in adjacent] ) if neighbor in self.universe.contents: @@ -940,17 +944,13 @@ class User: def new_avatar(self): """Instantiate a new, unconfigured avatar for this user.""" counter = 0 - while "avatar:" + self.account.get("name") + ":" + str( - counter - ) in universe.categories.get("actor", {}).keys(): + while ("avatar_%s_%s" % (self.account.get("name"), counter) + in universe.categories.get("actor", {}).keys()): counter += 1 self.avatar = Element( - "actor:avatar:" + self.account.get("name") + ":" + str( - counter - ), - universe, old_style=True - ) - self.avatar.append("inherit", "archetype:avatar") + "actor.avatar_%s_%s" % (self.account.get("name"), counter), + universe) + self.avatar.append("inherit", "archetype.avatar") self.account.append("avatars", self.avatar.key) def delete_avatar(self, avatar): @@ -1401,7 +1401,7 @@ def on_pulse(): # add an element for counters if it doesn't exist if "counters" not in universe.categories.get("internal", {}): - Element("internal:counters", universe, old_style=True) + Element("internal.counters", universe) # update the log every now and then if not universe.categories["internal"]["counters"].get("mark"):