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()))
Ejemplo n.º 2
0
 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()
Ejemplo n.º 3
0
 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()
Ejemplo n.º 4
0
 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
Ejemplo n.º 6
0
    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()
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
 def __processInstallModule(self, module):
     yield getPreviewInstallerProcessor(self.__vehicle, module).request()
Ejemplo n.º 10
0
 def __installModuleOnLocalVehicle(self, module):
     yield getPreviewInstallerProcessor(self._vehicle, module).request()