def stop(self, effectID): if self._models.has_key(effectID): desc = self._models[effectID] desc['effectsPlayer'].stop() BigWorld.delModel(desc['model']) BigWorld.delAlwaysUpdateModel(desc['model']) del self._models[effectID]
def _cleanup(self, data): if data.get('_effectsListPlayer') is not None: data['_effectsListPlayer'].stop() timerID = data.get('_timerID') if timerID is not None: BigWorld.cancelCallback(timerID) data['_timerID'] = None if data['entity'].isPlayer and data.has_key('_gunModel'): BigWorld.delAlwaysUpdateModel(data['_gunModel']) return
def destroy(self): self._matProv = None for id, elem in self._models.items(): elem['effectsPlayer'].stop() model = elem['model'] if model is not None: BigWorld.delModel(model) BigWorld.delAlwaysUpdateModel(model) del self._models[id] return
def delete(self, elem, reason): callbackID = elem['callbackID'] if callbackID is not None: BigWorld.cancelCallback(callbackID) elem['callbackID'] = None elif elem['pixie'] is None: elem['cancelLoadCallback'] = True else: elem['node'].detach(elem['pixie']) elem['pixie'] = None if self._alwaysUpdate: BigWorld.delAlwaysUpdateModel(elem['model']) return True
def reattach(self, elem, model): nodePos = self._pos if self._alwaysUpdate: BigWorld.delAlwaysUpdateModel(elem['model']) BigWorld.addAlwaysUpdateModel(model) elem['model'] = model if elem['newPos'] is not None: nodePos = string.split(elem['newPos'][0], '/') if elem['newPos'][0] else [] if elem['pixie'] is not None and elem['pixie'] in elem['node'].attachments: elem['node'].detach(elem['pixie']) elem['node'] = _findTargetNode(model, nodePos, elem['newPos'][1] if elem['newPos'] else None, self._orientByClosestSurfaceNormal, elem['surfaceNormal']) elem['node'].attach(elem['pixie']) else: elem['node'] = _findTargetNode(model, nodePos, None, self._orientByClosestSurfaceNormal, elem['surfaceNormal']) return