コード例 #1
0
ファイル: actionop.py プロジェクト: jthantranon/mealpha8
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))
コード例 #2
0
ファイル: edenop.py プロジェクト: Charkova/MetaEden09a
 def get(self):
     cmeta = ops.loadmeta()
     localmetas = ops.fetchLocalMetas('Meta',cmeta.metaid)
     self.response.out.write(ops.sonify(localmetas))
コード例 #3
0
ファイル: prototypes.py プロジェクト: jthantranon/mealpha8
 def get(self):
     self.response.out.write(ops.fetchLocalMetas('Meta', 37))
コード例 #4
0
ファイル: actionop.py プロジェクト: jthantranon/mealpha8
 def post(self, direction):
     cmeta = ops.loadmeta()
     cmeta.cokind = 'Location' #Not robust
     premove = copy.copy(ops.loadmeta())
     
     
     
     cloc = ops.loadcloc()
     localmetas = ops.fetchLocalMetaMetaIDs('Meta',cmeta.metaid)
     
     pack = Packet()
     pack.scope = 'local'
     pack.type = 'move'
     
     
     for localmeta in localmetas:
         if localmeta == cmeta.metaid:
             pack.content = "You move " + ops.dirFull(direction) + "."
             pack.type = 'usermove'
             channel.send_message(str(localmeta), ops.jsonify(pack))
         else:
             pack.content = cmeta.name + " has moved " + ops.dirFull(direction)
             pack.name = cmeta.name
             pack.destination = ops.dirFull(direction)
             pack.type = 'userleave'
             channel.send_message(str(localmeta), ops.jsonify(pack))
     
     
     
     if direction == 'n':
         cmeta.yloc = str(int(cmeta.yloc)+1)
     elif direction == 's':
         cmeta.yloc = str(int(cmeta.yloc)-1)
     elif direction == 'e':
         cmeta.xloc = str(int(cmeta.xloc)+1)
     elif direction == 'w':
         cmeta.xloc = str(int(cmeta.xloc)-1)
     elif direction == 'u':
         cmeta.zloc = str(int(cmeta.zloc)+1)
     elif direction == 'd':
         cmeta.zloc = str(int(cmeta.zloc)-1)
     elif direction == 'ne':
         cmeta.xloc = str(int(cmeta.xloc)+1)
         cmeta.yloc = str(int(cmeta.yloc)+1)
     elif direction == 'se':
         cmeta.xloc = str(int(cmeta.xloc)+1)
         cmeta.yloc = str(int(cmeta.yloc)-1)
     elif direction == 'sw':
         cmeta.xloc = str(int(cmeta.xloc)-1)
         cmeta.yloc = str(int(cmeta.yloc)-1)
     elif direction == 'nw':
         cmeta.xloc = str(int(cmeta.xloc)-1)
         cmeta.yloc = str(int(cmeta.yloc)+1)
     cmeta.put()
     
     newlocalmetas = ops.fetchLocalMetaMetaIDs('Meta',cmeta.metaid)
     
     for newlocalmeta in newlocalmetas:
         if newlocalmeta == cmeta.metaid:
             pass
         else:
             pack.content = cmeta.name + " has arrived from the " + ops.dirOpp(direction)
             pack.type = 'userenter'
             pack.name = cmeta.name
             pack.destination = ops.dirOpp(direction)
             channel.send_message(str(newlocalmeta), ops.jsonify(pack))
     
     DepthPerception(premove,cmeta)
     #self.response.out.write(cmeta.xloc+cmeta.yloc+cmeta.zloc+cmeta.lattice)
     nLocaMetas = ops.fetchLocalMetas(Meta, cmeta.metaid)
     nloc = Packet()
     nloc.locdata = cloc
     nloc.metashere = nLocaMetas
     self.response.out.write(ops.jsonify(nloc))