def setItem(form, itemIndex, currencyName, currencyValue): form.tableWidgetCurrency.setItem(itemIndex, form.ig.columnNameToIndexCurrency['Name'], QtGui.QTableWidgetItem(currencyName)) form.tableWidgetCurrency.setItem( itemIndex, form.ig.columnNameToIndexCurrency['Total'], QCI(currencyValue))
def setItemRequirements(form, itemIndex): if form.stashTabJson['items'][itemIndex].has_key('requirements'): valueLvl = '' valueStr = '' valueInt = '' valueDex = '' for i in range( len(form.stashTabJson['items'][itemIndex]['requirements'])): temp = form.stashTabJson['items'][itemIndex]['requirements'][i][ 'name'] if 'Level' in temp: valueLvl = form.stashTabJson['items'][itemIndex][ 'requirements'][i]['values'][0][0] continue if 'Str' in temp: valueStr = form.stashTabJson['items'][itemIndex][ 'requirements'][i]['values'][0][0] continue if 'Dex' in temp: valueDex = form.stashTabJson['items'][itemIndex][ 'requirements'][i]['values'][0][0] continue if 'Int' in temp: valueInt = form.stashTabJson['items'][itemIndex][ 'requirements'][i]['values'][0][0] continue if valueLvl: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['rLvl'], QCI(valueLvl)) if valueStr: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['rStr'], QCI(valueStr)) if valueDex: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['rDex'], QCI(valueDex)) if valueInt: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['rInt'], QCI(valueInt))
def setItemMapTier(form, itemIndex, dataPropertiesImplicitExplicitLinesList, typeName): if dataPropertiesImplicitExplicitLinesList and typeName == 'Map': temp = dataPropertiesImplicitExplicitLinesList valueMTier = None for i in range(len(temp)): if ('Tier:' in temp[i]): valueMTier = int(temp[i].split(':')[1]) if valueMTier: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['mTier'], QCI(str(valueMTier)))
def setItemApsCsch(form, itemIndex, dataPropertiesImplicitExplicitLinesList): if dataPropertiesImplicitExplicitLinesList: if unicode( form.tableWidget.item( itemIndex, form.ig.columnNameToIndex['Type']).text()).find( 'H Weapon)') >= 0: temp = dataPropertiesImplicitExplicitLinesList data = [] dataAPS = 0 dataCsCh = 0 for i in range(len(temp)): if temp[i].find('Attacks per Second:') >= 0: data.append(float(temp[i].split(':')[1])) elif temp[i].find('Critical Strike Chance: ') >= 0: dataCsCh = temp[i].split(':')[1] dataCsCh = dataCsCh.split('%') form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['csCh'], QCI(dataCsCh[0])) dataAPS = sum(data) form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['APS'], QCI(dataAPS))
def openSingleJson(form): if form.ig.jsonConfig['curGuide']: directoryName = os.path.dirname(form.ig.jsonConfig['curGuide']) else: directoryName = '' fileName = tools.openSingleJsonFileName(directoryName) if fileName: form.guideLineEdit.setText(os.path.basename(unicode(fileName))) jsonData = tools.readJson(fileName) form.ig.jsonConfig['curGuide'] = fileName tools.writeJson(form.ig.jsonConfig, 'Configs\config.json') if not form.ig.jsonConfig['common']['configVersion'] == jsonData[ 'common']['singleJsonVersion']: QtGui.QMessageBox.warning( None, "Open single json", "Version mismatch. Single json cannot be opened. Please export data to single json again and then retry." ) return UIMainLayout.tableWidgetBeforeLoad(form) l = len(jsonData['rows']) for i in range(l): form.statusbar.showMessage('Processing ' + os.path.basename(unicode(fileName)) + ' (item ' + str(i + 1) + ' of ' + str(l) + ')') form.tableWidget.insertRow(i) for j in range(len(jsonData['rows'][i])): itemValue = jsonData['rows'][i][j] if itemValue: if form.ig.columnsHeaders[j]['type'] == 'String': form.tableWidget.setItem( i, j, QtGui.QTableWidgetItem(unicode(itemValue))) else: form.tableWidget.setItem(i, j, QCI(itemValue)) # else: # form.tableWidget.setItem(i, j, QtGui.QTableWidgetItem('')) form.statusbar.showMessage('Load complete') UIMainLayout.tableWidgetAfterLoad(form)
def setItemDpsPdpsEdpsFdpsLdpsCdpsChDps(form, itemIndex, dataPropertiesImplicitExplicit): valueType = unicode( form.tableWidget.item(itemIndex, form.ig.columnNameToIndex['Type']).text()) valueRarity = form.tableWidget.item( itemIndex, form.ig.columnNameToIndex['Rarity']).text() if 'H Weapon' in valueType and ('Rare' in valueRarity or 'Unique' in valueRarity): dataQuality = form.tableWidget.item( itemIndex, form.ig.columnNameToIndex['Quality']) if dataQuality: dataQuality = dataQuality.text() else: dataQuality = '0' dataQuality = 'Quality: +' + dataQuality + '\n' data = dataQuality + unicode( form.tableWidget.item( itemIndex, form.ig. columnNameToIndex['PropertiesImplicitExplicit']).text()) _dpsCalc = dpsCalc.dpsCalc() if _dpsCalc.Calc(unicode(data)): if _dpsCalc.totalDPS: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['DPS'], QCI(_dpsCalc.totalDPS)) if _dpsCalc.valueElemental: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['eDPS'], QCI(_dpsCalc.valueElemental)) if _dpsCalc.valuePhysical: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['pDPS'], QCI(_dpsCalc.valuePhysical)) if _dpsCalc.valueFire: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['fDPS'], QCI(_dpsCalc.valueFire)) if _dpsCalc.valueLightning: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['lDPS'], QCI(_dpsCalc.valueLightning)) if _dpsCalc.valueCold: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['cDPS'], QCI(_dpsCalc.valueCold)) if _dpsCalc.valueChaos: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['ChDPS'], QCI(_dpsCalc.valueChaos)) else: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['DPS'], QtGui.QTableWidgetItem('0')) form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['eDPS'], QtGui.QTableWidgetItem('0')) form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['pDPS'], QtGui.QTableWidgetItem('0')) form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['fDPS'], QtGui.QTableWidgetItem('0')) form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['lDPS'], QtGui.QTableWidgetItem('0')) form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['cDPS'], QtGui.QTableWidgetItem('0')) form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['ChDPS'], QtGui.QTableWidgetItem('0'))
def setItemResistances(form, itemIndex, dataPropertiesImplicitExplicitLines, dataPropertiesImplicitExplicitLinesList, typeName): if dataPropertiesImplicitExplicitLinesList: if dataPropertiesImplicitExplicitLines.find('Resistance') >= 0: temp = dataPropertiesImplicitExplicitLinesList dataAll = [] dataF = [] dataL = [] dataC = [] dataCh = [] valueTotal = 0 valueAll = 0 valueF = 0 valueL = 0 valueC = 0 valueCh = 0 for i in range (len(temp)): if typeName == 'Essence': break if ('% to' in temp[i]) and ('Fire' in temp[i]) and ('Resistance' in temp[i]) and not ('enemies' in temp[i]): dataF.append(int(temp[i].split('%')[0])) if ('% to' in temp[i]) and ('Lightning' in temp[i]) and ('Resistance' in temp[i]) and not ('enemies' in temp[i]): dataL.append(int(temp[i].split('%')[0])) if ('% to' in temp[i]) and ('Cold' in temp[i]) and ('Resistance' in temp[i]) and not ('enemies' in temp[i]): dataC.append(int(temp[i].split('%')[0])) if ('% to' in temp[i]) and ('Chaos' in temp[i]) and ('Resistance' in temp[i]): dataCh.append(int(temp[i].split('%')[0])) elif ('% to all Elemental Resistances' in temp[i]) and not ('nearby' in temp[i]) and not ('Minions' in temp[i]) and not ('Totems' in temp[i]): dataAll.append(int(temp[i].split('%')[0])) if dataAll: valueAll = sum(dataAll) if dataF: valueF = sum(dataF) + valueAll else: valueF = valueAll if dataL: valueL = sum(dataL) + valueAll else: valueL = valueAll if dataC: valueC = sum(dataC) + valueAll else: valueC = valueAll if dataCh: valueCh = sum(dataCh) valueTotal = valueF + valueL + valueC + valueCh if valueTotal: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['resTotal'], QCI(valueTotal)) if valueAll: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['resAll'], QCI(valueAll)) if valueF: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['resF'], QCI(valueF)) if valueL: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['resL'], QCI(valueL)) if valueC: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['resC'], QCI(valueC)) if valueCh: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['resCh'], QCI(valueCh))
def setItemArmEvEsChtbGcscGcsmCscfsCspSpdQty( form, itemIndex, dataPropertiesImplicitExplicitLinesList, typeName): if dataPropertiesImplicitExplicitLinesList: temp = dataPropertiesImplicitExplicitLinesList valueArmour = 0 valueEvasion = 0 valueEnergyShield = 0 valueChanceToBlock = 0 dataGcsc = [] dataGcsm = [] dataCscfs = [] dataCsp = [] dataSpd = [] valueGcsc = 0 valueGcsm = 0 valueCscfs = 0 valueCsp = 0 valueSpd = 0 valueStackQuantity = None for i in range(len(temp)): if 'Stack Size' in temp[i]: valueStackQuantity = int(temp[i].split(':')[1].split('/')[0]) continue if typeName == 'Essence': break if 'Armour:' in temp[i]: valueArmour = int(temp[i].split(':')[1].split('%')[0]) continue if 'Evasion Rating:' in temp[i]: valueEvasion = int(temp[i].split(':')[1].split('%')[0]) continue if 'Energy Shield:' in temp[i]: valueEnergyShield = int(temp[i].split(':')[1].split('%')[0]) continue if 'Chance to Block:' in temp[i]: valueChanceToBlock = int(temp[i].split(':')[1].split('%')[0]) continue if '% increased Global Critical Strike Chance' in temp[i]: dataGcsc.append(int(temp[i].split('%')[0])) continue if '% to Global Critical Strike Multiplier' in temp[i]: dataGcsm.append(int(temp[i].split('%')[0])) continue if '% increased Critical Strike Chance for Spells' in temp[i]: dataCscfs.append(int(temp[i].split('%')[0])) continue if ('% increased Cast Speed' in temp[i] ) and not ('Minions' in temp[i]) and not ('nearby' in temp[i]): dataCsp.append(int(temp[i].split('%')[0])) continue if '% increased Spell Damage' in temp[i]: dataSpd.append(int(temp[i].split('%')[0])) continue if dataGcsc: valueGcsc = sum(dataGcsc) if dataGcsm: valueGcsm = sum(dataGcsm) if dataCscfs: valueCscfs = sum(dataCscfs) if dataCsp: valueCsp = sum(dataCsp) if dataSpd: valueSpd = sum(dataSpd) #non stackable currency if typeName == 'Currency' and not valueStackQuantity: valueStackQuantity = 1 if valueArmour: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['Arm'], QCI(valueArmour)) if valueEvasion: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['Ev'], QCI(valueEvasion)) if valueEnergyShield: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['ES'], QCI(valueEnergyShield)) if valueChanceToBlock: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['ChtB'], QCI(valueChanceToBlock)) if valueGcsc: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['GcsC'], QCI(valueGcsc)) if valueGcsm: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['GcsM'], QCI(valueGcsm)) if valueCscfs: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['CscfS'], QCI(valueCscfs)) if valueCsp: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['Csp'], QCI(valueCsp)) if valueSpd: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['SpD'], QCI(valueSpd)) if valueStackQuantity: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['Qty'], QCI(valueStackQuantity))
def setItemSockets(form, itemIndex): if form.stashTabJson['items'][itemIndex].has_key('sockets'): valueColorStr = 0 valueColorDex = 0 valueColorInt = 0 valueColorWhite = 0 groups = [0] * 7 colors = [0] * 7 valueMaxLinked = 0 valueSocketsCount = len( form.stashTabJson['items'][itemIndex]['sockets']) dataVisualSockets = [] valueVisualSockets = '' for i in range(valueSocketsCount): tempGroup = form.stashTabJson['items'][itemIndex]['sockets'][i][ 'group'] tempColor = form.stashTabJson['items'][itemIndex]['sockets'][i][ 'attr'] if tempColor == 'S': valueColorStr += 1 elif tempColor == 'D': valueColorDex += 1 elif tempColor == 'I': valueColorInt += 1 else: valueColorWhite += 1 groups[tempGroup] += 1 if colors[tempGroup] == 0: colors[tempGroup] = tempColor else: colors[tempGroup] += ('-' + tempColor) for i in range(len(colors)): if colors[i] != 0: dataVisualSockets.append(colors[i]) l = len(dataVisualSockets) for i in range(l): if i < (l - 1): if len(dataVisualSockets[i]) > 1: valueVisualSockets = valueVisualSockets + dataVisualSockets[ i] + ',\n' else: valueVisualSockets = valueVisualSockets + dataVisualSockets[ i] + ', ' else: valueVisualSockets = valueVisualSockets + dataVisualSockets[i] valueMaxGroups = max(groups) if valueMaxGroups > 1: valueMaxLinked = valueMaxGroups if valueSocketsCount: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['Sockets'], QCI(valueSocketsCount)) if valueMaxLinked: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['Linked'], QCI(valueMaxLinked)) if valueVisualSockets: form.tableWidget.setItem( itemIndex, form.ig.columnNameToIndex['LinksVisual'], QtGui.QTableWidgetItem(str(valueVisualSockets))) if valueColorStr: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['sStr'], QCI(valueColorStr)) if valueColorDex: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['sDex'], QCI(valueColorDex)) if valueColorInt: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['sInt'], QCI(valueColorInt)) if valueColorWhite: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['sWh'], QCI(valueColorWhite))
def setItemAttributesLifeMana(form, itemIndex, dataPropertiesImplicitExplicitLinesList, typeName): if dataPropertiesImplicitExplicitLinesList: temp = dataPropertiesImplicitExplicitLinesList dataAll = [] dataS = [] dataD = [] dataI = [] valueTotal = 0 valueAll = 0 valueS = 0 valueD = 0 valueI = 0 dataLifeAll = [] dataManaAll = [] valueLifeTotal = 0 valueManaTotal = 0 for i in range(len(temp)): if typeName == 'Essence': break if (' to ' in temp[i]) and ( 'Strength' in temp[i]) and not ('Level' in temp[i]) and not ( "Strength's" in temp[i]) and not ('Transformed' in temp[i]): dataS.append(int(temp[i].split(' to ')[0])) if (' to ' in temp[i]) and ('Dexterity' in temp[i]) and not ( 'Level' in temp[i]) and not ('Transformed' in temp[i]) and not ( 'per' in temp[i]) and not ('least' in temp[i]): dataD.append(int(temp[i].split(' to ')[0])) if (' to ' in temp[i]) and ('Intelligence' in temp[i]) and not ( 'Level' in temp[i]) and not ('Transformed' in temp[i]): dataI.append(int(temp[i].split(' to ')[0])) elif (' to all Attributes' in temp[i]): dataAll.append(int(temp[i].split(' to ')[0])) if ' to maximum Life' in temp[i]: dataLifeAll.append(int(temp[i].split(' to ')[0])) continue if ' to maximum Mana' in temp[i]: dataManaAll.append(int(temp[i].split(' to ')[0])) continue if dataAll: valueAll = sum(dataAll) if dataS: valueS = sum(dataS) + valueAll else: valueS = valueAll if dataD: valueD = sum(dataD) + valueAll else: valueD = valueAll if dataI: valueI = sum(dataI) + valueAll else: valueI = valueAll if dataLifeAll: valueLifeTotal = sum(dataLifeAll) if dataManaAll: valueManaTotal = sum(dataLifeAll) valueTotal = valueS + valueD + valueI valueLifeTotal = valueLifeTotal + (valueS / 2) valueManaTotal = valueManaTotal + (valueI / 2) if valueTotal: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['toAttrTotal'], QCI(valueTotal)) if valueS: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['toStr'], QCI(valueS)) if valueD: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['toDex'], QCI(valueD)) if valueI: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['toInt'], QCI(valueI)) if valueLifeTotal: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['toMaxLife'], QCI(valueLifeTotal)) if valueManaTotal: form.tableWidget.setItem(itemIndex, form.ig.columnNameToIndex['toMaxMana'], QCI(valueManaTotal))
def setItem(self, itemIndex): #Name ('name' + 'typeLine') #start = time() self.tableWidget.setItem( itemIndex, self.ig.columnNameToIndex['Name'], QtGui.QTableWidgetItem( items.setItemNameAndTypeLine(self, itemIndex))) #print 'Name ' + str(tools.printTime(start)) #Type #start = time() self.tableWidget.setItem( itemIndex, self.ig.columnNameToIndex['Type'], QtGui.QTableWidgetItem(items.setItemType(self, itemIndex))) #print 'Type ' + str(tools.printTime(start)) #Location #start = time() self.tableWidget.setItem( itemIndex, self.ig.columnNameToIndex['Location'], QtGui.QTableWidgetItem(items.setItemLocation(self, itemIndex))) #print 'Location ' + str(tools.printTime(start)) #iLvl #start = time() value = items.setIlvl(self, itemIndex) if value: self.tableWidget.setItem(itemIndex, self.ig.columnNameToIndex['iLvl'], QCI(value)) #print 'iLvl ' + str(tools.printTime(start)) #Rarity #start = time() self.tableWidget.setItem( itemIndex, self.ig.columnNameToIndex['Rarity'], QtGui.QTableWidgetItem(items.setItemRarity(self, itemIndex))) #print 'Rarity ' + str(tools.printTime(start)) #Quality #start = time() value = items.setItemQuality(self, itemIndex) if value: self.tableWidget.setItem(itemIndex, self.ig.columnNameToIndex['Quality'], QCI(value)) #print 'Quality ' + str(tools.printTime(start)) #Requirements #start = time() setItemRequirements(self, itemIndex) #print 'Requirements ' + str(tools.printTime(start)) #Properties #start = time() self.tableWidget.setItem( itemIndex, self.ig.columnNameToIndex['Properties'], QtGui.QTableWidgetItem(items.setItemProperties(self, itemIndex))) #print 'Properties ' + str(tools.printTime(start)) #Implicit modifiers #start = time() self.tableWidget.setItem( itemIndex, self.ig.columnNameToIndex['Implicit Modifiers'], QtGui.QTableWidgetItem( items.setItemImplicitModifiers(self, itemIndex))) #print 'Implicit modifiers ' + str(tools.printTime(start)) #Explicit modifiers #start = time() self.tableWidget.setItem( itemIndex, self.ig.columnNameToIndex['Explicit Modifiers'], QtGui.QTableWidgetItem( items.setItemExplicitModifiers(self, itemIndex))) #print 'Explicit modifiers ' + str(tools.printTime(start)) #PropertiesImplicitExplicit #start = time() self.tableWidget.setItem( itemIndex, self.ig.columnNameToIndex['PropertiesImplicitExplicit'], QtGui.QTableWidgetItem( setItemPropertiesImplicitExplicit(self, itemIndex))) #print 'PropertiesImplicitExplicit ' + str(tools.printTime(start)) # Calculated columns if self.ig.jsonConfig['common']['calculateSpecifiedColumns']: #get required values propertiesImplicitExplicitLines = unicode( self.tableWidget.item( itemIndex, self.ig. columnNameToIndex['PropertiesImplicitExplicit']).text()) propertiesImplicitExplicitLinesList = propertiesImplicitExplicitLines.splitlines( ) typeName = unicode( self.tableWidget.item( itemIndex, self.ig.columnNameToIndex['Type']).text()) #dpsPdpsEdpsFdpsLdpsCdpsChDps #start = time() setItemDpsPdpsEdpsFdpsLdpsCdpsChDps( self, itemIndex, propertiesImplicitExplicitLines) #print 'dpsPdpsEdpsFdpsLdpsCdpsChDps ' + str(tools.printTime(start)) #self.tableWidget.setItem(itemIndex, self.ig.columnNameToIndex['Type'], QtGui.QTableWidgetItem(items.setItemType(self, itemIndex))) #APS, Critical Strike Chance #start = time() setItemApsCsch(self, itemIndex, propertiesImplicitExplicitLinesList) #print 'APS, Critical Strike Chance ' + str(tools.printTime(start)) #all Resistances (resTotal, resAll, resF, resL, resC, resCh), values for Fire, Lightning, Cold resistances includes value from '% to all elemental resistances' modifier #start = time() setItemResistances(self, itemIndex, propertiesImplicitExplicitLines, propertiesImplicitExplicitLinesList, typeName) #print 'all Resistances ' + str(tools.printTime(start)) #all Attributes (toAttrTotal, toStr, toDex, toInt), values for Str, Dex, Int attributes includes value from 'to all Attributes' modifier #start = time() setItemAttributesLifeMana(self, itemIndex, propertiesImplicitExplicitLinesList, typeName) #print 'all Attributes ' + str(tools.printTime(start)) #Armour, Evasion, Energy Shield, Chance to Block, Global Critical Strike Chance, Global Critical Strike Multiplier, Critical Strike Chance for Spells, Cast Speed, Spell Damage #start = time() setItemArmEvEsChtbGcscGcsmCscfsCspSpdQty( self, itemIndex, propertiesImplicitExplicitLinesList, typeName) #print 'Armour, Evasion, Energy Shield ' + str(tools.printTime(start)) #all Sockets #start = time() setItemSockets(self, itemIndex) #print 'all Sockets ' + str(tools.printTime(start)) #MapTier #start = time() setItemMapTier(self, itemIndex, propertiesImplicitExplicitLinesList, typeName)