Esempio n. 1
0
    def post(self,metaAction):
        cmeta = ops.loadmeta()
        tKind = self.request.get('tKind')
        tID = self.request.get('tID')
        tMedo = ndb.Key(tKind,int(tID)).get()
        if self.request.get('rKind'):
            rKind = self.request.get('rKind')
            
            rID = self.request.get('rID')
            
            if rKind == 'Location':
                rMedo = Location()
                rMedo.metakind = 'Location'
                rMedo.xloc = cmeta.xloc
                rMedo.yloc = cmeta.yloc
                rMedo.zloc = cmeta.zloc
                rMedo.lattice = cmeta.lattice
                rMedo.name = cmeta.cokid
            else:
                rMedo = ndb.Key(rKind,int(rID)).get()
        if metaAction == 'Laugh':
            Laugh()
#                channel.send_message(str(localmeta), ops.jsonify(pack))
        if metaAction == 'MineNode':
            MineNode(cmeta,tMedo)
        if metaAction == 'Kick':
            Kick(cmeta,tMedo)
        if metaAction == 'Relo':
            Relo(tMedo,rMedo)
Esempio n. 2
0
 def get(self):
     
     try:
         cmeta = ops.loadmeta()
         q = Location.query(
                            Location.xloc == cmeta.xloc,
                            Location.yloc == cmeta.yloc,
                            Location.zloc == cmeta.zloc,
                            Location.lattice == cmeta.lattice)
         q = q.get()
                    
         self.response.out.write(ops.jsonify(q))
     except AttributeError:
         q = Location()
         q.exits = 'n,e,s,w,nw,ne,se,sw,u,d'
         q.metakind = 'Location'
         q.metaid = cmeta.xloc+cmeta.yloc+cmeta.zloc+cmeta.lattice
         q.name = 'Beyond Eden'
         q.info = "You have wandered beyond constructed space. Don't get lost!"
         if cmeta:
             q.xloc =  cmeta.xloc
             q.yloc =  cmeta.yloc
             q.zloc =  cmeta.zloc
             q.lattice =  cmeta.lattice
         else:
             q.xloc =  '500'
             q.yloc =  '500'
             q.zloc =  '500'
             q.lattice =  '0'
         q = q.to_dict()
         jsonData = json.dumps(q)
         self.response.out.write(jsonData)
Esempio n. 3
0
def PackObj(sitem):
    cmeta = ops.loadmeta()
    if sitem.kid == cmeta.kid:
        sitem.metasheetupdater = True
    sitem.updater = True
    localmetas = ops.fetchLocalMetaMetaIDs('Meta',cmeta.metaid)
    for localmeta in localmetas:
        channel.send_message(str(localmeta), ops.jsonify(sitem))
Esempio n. 4
0
def Relo(tMedo,rMedo):
    # Load Stuff
    relocator = ops.loadmeta()
    rKind = rMedo.metakind
    tKind = tMedo.metakind
    premove = copy.copy(tMedo)

    if tMedo.cowner:
        origin = tMedo.cowner
    else:
        origin = 'Location'+tMedo.xloc+tMedo.yloc+tMedo.zloc+tMedo.lattice
    oKID = ops.metasplit(origin)
    oKind = oKID[0]
    oID = oKID[1]
    ops.mdb(origin, 'the non location')
    
    try:
        oMedo = ndb.Key(oKind, int(oID)).get()
    except ValueError:
        ops.mdb('except')
    
    if oKind == 'Location':
        oMedo = Location()
        oMedo.name = relocator.cokid
        
    
    # Do Stuff
    tMedo.cowner = rMedo.kid
    
    if tKind == 'Meta':
        pass #shouldn't pass the frontend check
    elif rKind == 'Location':
        tMedo.xloc = rMedo.xloc
        tMedo.yloc = rMedo.yloc
        tMedo.zloc = rMedo.zloc
        tMedo.lattice = rMedo.lattice
        tMedo.cokind = 'Location'
        tMedo.coid = str(rMedo.xloc)+str(rMedo.yloc)+str(rMedo.zloc)+str(rMedo.lattice)
        tMedo.put()
        
    elif rKind == 'Meta':
        tMedo.xloc = ''
        tMedo.yloc = ''
        tMedo.zloc = ''
        tMedo.lattice = rMedo.lattice
        tMedo.cokind = 'Meta'
        tMedo.coid = str(rMedo.metaid)
        tMedo.put()
    who = relocator.name
    if rMedo == relocator:
        what = ' picks up [' + tMedo.name + '] from [' + oMedo.name + ']'
    elif rMedo.metakind == 'Location':
        what = ' drops [' + tMedo.name + '] @ [' + rMedo.name + ']'
    else:
        what = ' moves ...'
    vision = who + what
    
    DepthPerception(premove,tMedo,vision)
Esempio n. 5
0
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))
Esempio n. 6
0
def SelfEcho(content):
    cmeta = ops.loadmeta()
    pack = Packet()
    sloc = ops.loadcloc()
    
    pack.scopename = sloc.name
    pack.type = 'action'
    pack.scope = 'local'
    pack.formatted = content
    pack.content = content + " hohum"
    pack.masterid = str(cmeta.masterid)
    pack.name = cmeta.name
    pack.metakind = cmeta.metakind
    pack.metaid = cmeta.metaid
    channel.send_message(str(cmeta.metaid), ops.jsonify(pack))
Esempio n. 7
0
def MetaEcho(content):
    cmeta = ops.loadmeta()
    pack = Packet()
    localmetas = ops.fetchLocalMetaMetaIDs('Meta',cmeta.metaid)
    sloc = ops.loadcloc()
    formatted = "["+sloc.name+"]<b> " + cmeta.name + "</b>: " + content + " haha"
    for localmeta in localmetas:
        pack.scopename = sloc.name
        pack.type = 'broadcast'
        pack.scope = 'local'
        pack.formatted = formatted
        pack.content = content + " hoho"
        pack.masterid = str(cmeta.masterid)
        pack.name = cmeta.name
        pack.metakind = cmeta.metakind
        pack.metaid = cmeta.metaid
        channel.send_message(str(localmeta), ops.jsonify(pack))
Esempio n. 8
0
    def post(self,metakind,metaid,dkind,did):
        
        mobject = ndb.Key(metakind, int(metaid)).get()
        
        
        
        if 'Location' in mobject.cowner:
            ops.updateclocstate()    
        
        mobject.cowner = dkind+'.'+did
        
        if metakind == 'Meta':
            pass
        elif dkind == 'Location':
            cloc = ops.loadcloc()
            mobject.xloc = cloc.xloc
            mobject.yloc = cloc.yloc
            mobject.zloc = cloc.zloc
            mobject.put()
            ops.updateclocstate()
            
        elif dkind == 'Meta':
            
            cmeta = ops.loadmeta()
            
            nowner = ndb.Key('Meta', int(did)).get()
            pack = Packet()
            pack.type = 'reinv'
            pack.masterid = str(cmeta.masterid)
            pack.name = cmeta.name
            pack.metakind = 'Meta'
            pack.metaid = cmeta.metaid
            pack = json.dumps(pack.to_dict())
            channel.send_message(nowner.masterid, pack)
            
            
            mobject.xloc = ''
            mobject.yloc = ''
            mobject.zloc = ''
            mobject.put()
        
        mobject = mobject.to_dict()
        jsonData = json.dumps(mobject)

        self.response.out.write(jsonData)
Esempio n. 9
0
 def post(self):
     cmeta = ops.loadmeta()
     spec = Item();
     spec.name = self.request.get('title')
     spec.info = self.request.get('info')
     spec.itype = 'YouTube'
     spec.primertype = 'Item'
     spec.shardtype = 'Generic'
     spec.fragtype = 'YouTube'
     spec.cowner = 'Meta'+str(cmeta.metaid)
     spec.lattice = '0'
     spec.metakind = 'Item'
     spec.ytlink = self.request.get('ytlink')
     spec.actions = ['Kick','Watch']
     
     spec.put()
     spec.metaid = spec.key.id()
     spec.put()
Esempio n. 10
0
    def get(self,target):
        if target == 'self' or target == '':
            tMeta = ops.loadmeta()
        else:
            tMeta = ops.KIDtoMedo(target)
        q = []
        for crystal in Crystal.query(Crystal.cowner == 'Meta'+str(tMeta.metaid)).fetch(50):
            q.append(crystal)
        for blueprint in Blueprint.query(Blueprint.cowner == 'Meta'+str(tMeta.metaid)).fetch(50):
            q.append(blueprint)
        for item in Item.query(Item.cowner == 'Meta'+str(tMeta.metaid)).fetch(50):
            q.append(item)

        cinv = q
        invli = []
        for inv in cinv:
            inv = inv.to_dict()
            invli.append(inv)
        
        self.response.out.write(ops.sonify(invli))
Esempio n. 11
0
def CreateDigiFort():
        cmeta = ops.loadmeta()
        spec = Item();
        spec.name = 'Digital Fortress of ' + cmeta.name
        spec.info = 'This is a test item.'
        spec.itype = 'Test'
        spec.primertype = 'Generic'
        spec.shardtype = 'Generic'
        spec.fragtype = 'Generic'
        spec.cowner = 'Meta'+str(cmeta.metaid)
        spec.lattice = '0'
        spec.metakind = 'Item'
        spec.actions = ['Enter']
        spec.supertype = 'Landmark'
        spec.regtype = 'Mine'
        spec.databit = 0
        
        spec.put()
        spec.metaid = spec.key.id()
        spec.put()
Esempio n. 12
0
def PackPacket(packtype,scopename,scope,formatted,content):
    cmeta = ops.loadmeta()
    pack = Packet()
    
    if scope == 'local':
        targetmetas = ops.fetchLocalMetaMetaIDs('Meta',cmeta.metaid)
    elif scope == 'global' or scope == 'system':
        targetmetas = ops.fetchAllMetaMetaIDs()
    
    for targetmeta in targetmetas:
                pack.scopename = scopename
                pack.type = packtype
                pack.scope = scope
                pack.formatted = formatted
                pack.content = content
                pack.masterid = str(cmeta.masterid)
                pack.name = cmeta.name
                pack.metakind = cmeta.metakind
                pack.metaid = cmeta.metaid
                channel.send_message(str(targetmeta), ops.jsonify(pack))
Esempio n. 13
0
def cProc(command):
    cmeta = ops.loadmeta()
    if command == '/datamine':
        unicon.CreateDataMine()
        SelfEcho('DataMine Created.')
    elif command == '/digifort':
        unicon.CreateDigiFort()
        SelfEcho('DigitalFortress Created.')
    elif command == '/spawnloc':
        unicon.Spawn().Location()
        SelfEcho('Location Created.')
    elif command == '/newloc':
        para = Packet()
        para.name = 'Test'
        para.info = 'Test Info'
        para.xloc = cmeta.xloc
        para.yloc = cmeta.yloc
        para.zloc = cmeta.zloc
        para.lattice = cmeta.lattice
        protos.spawnLoca(para)
    else:
        content = 'Invalid Command: ' + command
        SelfEcho(content)
Esempio n. 14
0
def CreateDataMine():
        cmeta = ops.loadmeta()
        spec = Item();
        spec.name = 'Data Mine 4'
        spec.info = 'This is a test item.'
        spec.itype = 'Test'
        spec.primertype = 'Generic'
        spec.shardtype = 'Generic'
        spec.fragtype = 'Generic'
        spec.cowner = 'Meta'+str(cmeta.metaid)
        spec.lattice = '0'
        spec.metakind = 'Item'
        spec.actions = ['Mine Node','Kick']
        spec.supertype = 'Landmark'
        spec.regtype = 'Mine'
        spec.databit = 0
        spec.ispopup = True
        spec.xloc = '500'
        spec.yloc = '500'
        spec.zloc = '500'
        
        spec.put()
        spec.metaid = spec.key.id()
        spec.put()
Esempio n. 15
0
    def post(self,dest):
        cmeta = ops.loadmeta()
        sloc = ops.loadcloc()
        content = self.request.get('content')
        pack = Packet()
        
        if dest == 'command':
            cProc(self.request.get('content'))
            ops.mdb(self.request.get('content'), 'command pack')
            formatted = "["+sloc.name+"]<b> " + cmeta.name + "</b>: " + self.request.get('content')
            packtype = 'broadcast'
            scopename = sloc.name
            scope = 'local'

        if dest == 'local':
            
            packtype = 'broadcast'
            scopename = sloc.name
            scope = 'local'
            formatted = "["+sloc.name+"]<b> " + cmeta.name + "</b>: " + self.request.get('content')
            console = True
            
            PackPacket(console,packtype,scopename,scope,formatted,content)
            
        if dest == 'global':
#            if self.request.get('content')[0] == '@':
#                formatted = self.request.get('content')[1:]
#            else:
#                formatted = "[Global]<b> " + cmeta.name + "</b>: " + self.request.get('content')

            packtype = 'broadcast'
            scopename = 'Global'
            scope = 'global'
            formatted = "[Global]<b> " + cmeta.name + "</b>: " + self.request.get('content')
            console = True
            
            PackPacket(console,packtype,scopename,scope,formatted,content)

        elif dest == 'login':
          
            packtype = 'userlogin'
            scopename = 'System'
            scope = 'system'
            content = cmeta.name + "</b> has logged into MetaEden."
            formatted = "[System]<b> " + cmeta.name + "</b> has logged into MetaEden."
            console = 'edenop.ChanRouter.dest==login'
            
            PackPacket(console,packtype,scopename,scope,formatted,content,cmeta)
            
        elif dest == 'pm':
            metakind = self.request.get('metakind')
            metaid = self.request.get('metaid')
            content = self.request.get('content')
            formatted = "[PM]<b> " + cmeta.name + "</b>: " + content
            pack.type = 'pm'
            pack.scope = 'private'
            pack.formatted = formatted
            pack.content = content
            pack.masterid = str(cmeta.masterid)
            pack.name = cmeta.name
            pack.metakind = cmeta.metakind
            pack.metaid = str(cmeta.metaid)
            channel.send_message(str(metaid), ops.jsonify(pack))
            pack.name = metakind+metaid 
            pack.metakind = metakind
            pack.metaid = metaid
            self.response.out.write(ops.jsonify(pack))
        else:
            pack.type = 'msg'
            pack.content = content
            pack.to = str(dest)
            pack.masterid = str(cmeta.masterid)
            pack.name = cmeta.name
            pack.metakind = 'Meta'
            pack.metaid = cmeta.metaid
            pack = json.dumps(pack.to_dict())
            channel.send_message(str(dest), pack)
            self.response.out.write(pack)
Esempio n. 16
0
 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))
Esempio n. 17
0
 def get(self):
     cmeta = ops.loadmeta()
     if cmeta:
         self.response.out.write(json.dumps(cmeta.to_dict()))
     else:
         self.response.out.write(json.dumps('false'))
Esempio n. 18
0
 def get(self):
     if ops.loadmeta():
         self.response.out.write(ops.jsonify(ops.loadmeta()))
     else:
         self.response.out.write(ops.jsonify('nometa'))
Esempio n. 19
0
 def get(self):
     cmeta = ops.loadmeta()
     puis = ops.fetchPopUpItems('Meta',cmeta.metaid)
     self.response.out.write(ops.sonify(puis))
Esempio n. 20
0
 def get(self):
     cmeta = ops.loadmeta()
     localitems = ops.fetchLocalItems('Meta',cmeta.metaid)
     self.response.out.write(ops.sonify(localitems))
Esempio n. 21
0
 def get(self):
     cmeta = ops.loadmeta()
     token = channel.create_channel(str(cmeta.metaid),1440)
     
     self.response.out.write(ops.sonify(token))