Updated the tutorial world's lockfuncs to work correctly. Resolves #682.

This commit is contained in:
Griatch 2015-03-02 21:35:55 +01:00
parent d1c7111db1
commit 9ffba037f8
3 changed files with 23 additions and 3 deletions

View file

@ -376,6 +376,25 @@ def locattr(accessing_obj, accessed_obj, *args, **kwargs):
if hasattr(accessing_obj, "location"):
return attr(accessing_obj.location, accessed_obj, *args, **kwargs)
def objlocattr(accessing_obj, accessed_obj, *args, **kwargs):
"""
Usage:
locattr(attrname)
locattr(attrname, value)
locattr(attrname, value, compare=type)
Works like attr, except it looks for an attribute on
accessed_obj.location, if such an entity exists.
if accessed_obj has a property ".obj" (such as is the case for a
Command), then accessing_obj.obj.location is used instead.
"""
if hasattr(accessed_obj, "obj"):
accessed_obj = accessed_obj.obj
if hasattr(accessed_obj, "location"):
return attr(accessed_obj.location, accessed_obj, *args, **kwargs)
def attr_eq(accessing_obj, accessed_obj, *args, **kwargs):
"""
@ -447,6 +466,7 @@ def tag(accessing_obj, accessed_obj, *args, **kwargs):
"""
if hasattr(accessing_obj, "obj"):
accessing_obj = accessing_obj = accessing_obj.obj
print "tag:", args, accessing_obj, accessing_obj.tags.get(*args)
return accessing_obj.tags.get(*args)
def objtag(accessing_obj, accessed_obj, *args, **kwargs):