def DepthPerception(before,after,vision=False): cmeta = ops.loadmeta() cloc = ops.loadcloc() bMetaIDs = ops.fetchXYZMIDs(before.xyz) aMetaIDs = ops.fetchXYZMIDs(after.xyz) eMetaIDs = ops.conKIDs(bMetaIDs, aMetaIDs) pack = Packet() pack.refresh = True pack.who = cmeta.kid if before.databits != after.databits: pack.type = 'Databits' pack.metakind = before.metakind pack.metaid = before.metaid pack.kid = before.kid pack.medo = after for metaID in eMetaIDs: channel.send_message(str(metaID), ops.jsonify(pack)) elif before.xyz != after.xyz: #Relocation pack.metakind = before.metakind pack.metaid = before.metaid pack.kid = before.kid pack.fromkind = before.cokind pack.tokind = after.cokind pack.fromkid = before.cokind + str(before.coid) pack.tokid = after.cokind + str(after.coid) pack.medo = after # for metaID in eMetaIDs: # channel.send_message(str(metaID), ops.jsonify(pack)) for bMeta in bMetaIDs: pack.type = 'MedoMove' channel.send_message(str(bMeta), ops.jsonify(pack)) for aMeta in aMetaIDs: if after.metakind != 'Meta': if after.cowner == cmeta.kid: pack.type = 'ItemUpdate' else: pack.type = 'ItemArrive' elif aMeta == cmeta.metaid: #ops.mdb(aMeta, 'test') pack.type = 'YouArrive' pack.cloc = cloc pack.nMetas = ops.fetchLocalMetas(after.metakind, after.metaid) pack.nItems = ops.fetchLocalItems(after.metakind, after.metaid) else: pack.type = 'MetaArrive' channel.send_message(str(aMeta), ops.jsonify(pack)) else: ops.mdb('This is else') if vision: for metaID in eMetaIDs: pack = Packet() pack.type = 'vision' pack.vision = True pack.formatted = vision channel.send_message(str(metaID), ops.jsonify(pack))
def get(self): cmeta = ops.loadmeta() localitems = ops.fetchLocalItems('Meta',cmeta.metaid) self.response.out.write(ops.sonify(localitems))