Poodletooth-iLand/toontown/shtiker/GroupManagerAI.py

62 lines
2.4 KiB
Python
Raw Normal View History

2015-03-07 02:24:33 -06:00
from pandac.PandaModules import *
from direct.distributed import DistributedObjectAI
from direct.directnotify import DirectNotifyGlobal
from toontown.toonbase import ToontownGlobals
class GroupManagerAI(DistributedObjectAI.DistributedObjectAI):
notify = DirectNotifyGlobal.directNotify.newCategory('GroupManagerAI')
def __init__(self, air):
DistributedObjectAI.DistributedObjectAI.__init__(self, air)
self.air = air
self.shardGroups = {}
def announceGenerate(self):
DistributedObjectAI.DistributedObjectAI.announceGenerate(self)
self.air.groupManager = self
def delete(self):
DistributedObjectAI.DistributedObjectAI.delete(self)
self.air.groupManager = None
def createGroup(self, shardId, playerId, groupType):
if len(self.shardGroups[shardId]) is 0:
groupId = 1
else:
groupId = sorted(self.shardGroups[shardId])[-1]+1
if groupId in self.shardGroups[shardId]:
return
self.shardGroups[shardId][groupId] = [groupType, [playerId]]
avId = self.air.getAvatarIdFromSender()
groups = str(self.shardGroups)
self.sendUpdateToAvatarId(avId, 'info', [groups])
def closeGroup(self, shardId, groupId):
if self.shardGroups[shardId].get(groupId):
del self.shardGroups[shardId][groupId]
avId = self.air.getAvatarIdFromSender()
groups = str(self.shardGroups)
self.sendUpdateToAvatarId(avId, 'info', [groups])
def addPlayerId(self, shardId, groupId, playerId):
if self.shardGroups[shardId].get(groupId) and playerId not in self.shardGroups[shardId].get(groupId):
self.shardGroups[shardId][groupId][1].append(playerId)
avId = self.air.getAvatarIdFromSender()
groups = str(self.shardGroups)
self.sendUpdateToAvatarId(avId, 'info', [groups])
def removePlayerId(self, shardId, groupId, playerId):
if self.shardGroups[shardId].get(groupId):
self.shardGroups[shardId][groupId][1].remove(playerId)
avId = self.air.getAvatarIdFromSender()
groups = str(self.shardGroups)
self.sendUpdateToAvatarId(avId, 'info', [groups])
def getInfo(self, shardId):
avId = self.air.getAvatarIdFromSender()
groups = str(self.shardGroups)
self.sendUpdateToAvatarId(avId, 'info', [groups])
def setInfo(self, shardInfo):
self.shardGroups = eval(shardInfo)