def onModuleClick(self, moduleId): moduleId = int(moduleId) newComponentItem = _getModule(moduleId) isMainFit, mainReason = newComponentItem.mayInstall(self.__vehicle) if isMainFit: yield getPreviewInstallerProcessor(self.__vehicle, newComponentItem).request() conflictedModules = self.__modulesInstaller.getConflictedModules() if self.__modulesInstaller.hasConflicted(): for modulesByType in conflictedModules: for moduleCD in modulesByType: conflictedModule = _getModule(moduleCD) yield getPreviewInstallerProcessor(self.__vehicle, conflictedModule).request() if not isMainFit: yield getPreviewInstallerProcessor(self.__vehicle, newComponentItem).request() self.__updateChangedSlots() self.__updateModulesType(getVehicleComparisonBasketCtrl().getVehicleAt(self.__vehIndex).getModulesType(strCD=self.__vehicle.descriptor.makeCompactDescr()))
def installComponent(self, newId): newComponentItem = g_itemsCache.items.getItemByCD(newId) Waiting.show('applyModule') conflictedEqs = newComponentItem.getConflictedEquipments(self.item) result = yield getPreviewInstallerProcessor(self.item, newComponentItem, conflictedEqs).request() processMsg(result) Waiting.hide('applyModule') if result.success: self.refreshModel() self.onComponentInstalled()
def installComponent(self, newId): newComponentItem = g_itemsCache.items.getItemByCD(newId) Waiting.show('applyModule') conflictedEqs = newComponentItem.getConflictedEquipments(self.item) result = yield getPreviewInstallerProcessor(self.item, newComponentItem, conflictedEqs).request() processMsg(result) Waiting.hide('applyModule') if result.success: self.refreshModel() self.onComponentInstalled()
def installComponent(self, newId): newComponentItem = self.itemsCache.items.getItemByCD(newId) Waiting.show('applyModule') conflictedEqs = newComponentItem.getConflictedEquipments(self.item) result = yield getPreviewInstallerProcessor(self.item, newComponentItem, conflictedEqs).request() from gui.shared.gui_items.items_actions.actions import processMsg processMsg(result) Waiting.hide('applyModule') if result.success: self.__vehAppearance.refreshVehicle(self.item) self.onComponentInstalled()
def installComponent(self, newId): newComponentItem = self.itemsCache.items.getItemByCD(newId) Waiting.show('applyModule', overlapsUI=False) conflictedEqs = newComponentItem.getConflictedEquipments(self.item) result = yield getPreviewInstallerProcessor(self.item, newComponentItem, conflictedEqs).request() pushMessagesFromResult(result) Waiting.hide('applyModule') if result.success: if self.__vehAppearance is not None: self.__vehAppearance.refreshVehicle(self.item) self.onComponentInstalled() return
def onModuleClick(self, moduleId): moduleId = int(moduleId) newComponentItem = _getModule(moduleId) isMainFit, mainReason = newComponentItem.mayInstall(self.__vehicle) if isMainFit: yield getPreviewInstallerProcessor(self.__vehicle, newComponentItem).request() conflictedModules = self.__modulesInstaller.getConflictedModules() if self.__modulesInstaller.hasConflicted(): for modulesByType in conflictedModules: for moduleCD in modulesByType: conflictedModule = _getModule(moduleCD) yield getPreviewInstallerProcessor( self.__vehicle, conflictedModule).request() if not isMainFit: yield getPreviewInstallerProcessor(self.__vehicle, newComponentItem).request() self.__updateChangedSlots() self.__updateModulesType( self.comparisonBasket.getVehicleAt(self.__vehIndex).getModulesType( strCD=self.__vehicle.descriptor.makeCompactDescr()))
def _installModule(self, vehicle, module): yield getPreviewInstallerProcessor(vehicle, module).request()
def _installModulesSet(vehicle, modules, notFitted): UNDEFINED_INDEX = -1 def __findModuleIndex(mList, moduleTypeID): for i in xrange(len(mList)): if mList[i].itemTypeID == moduleTypeID: return i return UNDEFINED_INDEX def __updateVehicleModule(vehicle, module): typeID = module.itemTypeID if typeID == GUI_ITEM_TYPE.CHASSIS: vehicle.chassis = module elif typeID == GUI_ITEM_TYPE.ENGINE: vehicle.engine = module elif typeID == GUI_ITEM_TYPE.RADIO: vehicle.radio = module elif typeID == GUI_ITEM_TYPE.TURRET: vehicle.turret = module elif typeID == GUI_ITEM_TYPE.GUN: vehicle.gun = module if modules: while modules: module = modules.pop() isFit, notFitReason = module.mayInstall(vehicle) if isFit: yield installer_module.getPreviewInstallerProcessor( vehicle, module).request() __updateVehicleModule(vehicle, module) if notFitReason == 'need turret': turretIndex = __findModuleIndex(modules, GUI_ITEM_TYPE.TURRET) if turretIndex != UNDEFINED_INDEX: modules.append(module) modules.append(modules.pop(turretIndex)) _installModulesSet(vehicle, modules, notFitted) break else: notFitted.append(notFitReason) if notFitReason == 'need gun': gunIndex = __findModuleIndex(modules, GUI_ITEM_TYPE.GUN) if gunIndex != UNDEFINED_INDEX: modules.append(module) modules.append(modules.pop(gunIndex)) _installModulesSet(vehicle, modules, notFitted) break else: notFitted.append(notFitReason) if notFitReason == 'too heavy': chassisIndex = __findModuleIndex(modules, GUI_ITEM_TYPE.CHASSIS) if chassisIndex != UNDEFINED_INDEX: modules.append(module) modules.append(modules.pop(chassisIndex)) _installModulesSet(vehicle, modules, notFitted) break else: notFitted.append(notFitReason) if notFitReason == 'too heavy chassis': modules.insert(0, module) _installModulesSet(vehicle, modules, notFitted) break
def __processInstallModule(self, module): yield getPreviewInstallerProcessor(self.__vehicle, module).request()
def __installModuleOnLocalVehicle(self, module): yield getPreviewInstallerProcessor(self._vehicle, module).request()