예제 #1
0
def checkBankForUpdate(bankName, foundData, tileBased=True, printMe=False):
    '''checks the bank with the given bank name to see if anything from the given list, found data, has been added or removed'''
    #images = findAllFiles("art/"+fileName+"/");
    bankFile = open(bankName + ".txt", "r+")
    if tileBased:
        bankedData = getBankedData(bankFile)
        bankedNames = bankedData[0]
        bankedASCIIs = bankedData[1]
        addedNames = util.shallowCopy(foundData)
        #Figure out what has been added
        addedNames = util.deleteSimularItems(bankedNames, addedNames)
        removedNames = util.shallowCopy(bankedNames)
        #Figure out what has been removed
        removedNames = util.deleteSimularItems(foundData, removedNames)
        removedASCIIs = []
        for i in removedNames:
            if printMe:
                print(
                    i +
                    " has been removed, removing ascii representation from pool"
                )
            removedASCIIs.append(bankedASCIIs.pop(bankedNames.index(i)))
            #Removes it from the other an adds it to the removed list
            bankedNames.pop(bankedNames.index(i))
        if len(removedASCIIs) > 0:
            print("TILEBASED:" + str(removedASCIIs))
            changeMaps(bankName, removedASCIIs)
        asciiCatch = getNewASCIIs(addedNames, bankedASCIIs, printMe)
        for name in addedNames:
            bankedNames.append(name)
        writeOutBank(bankFile, bankedNames, bankedASCIIs, printMe)
        #bankedNames = util.deleteSimularItems(removedNames, bankedNames);
        #writeOutBank(foundData, bankFile, bankedNames, bankedASCIIs)
    else:
        bankedNames = getBankedData(bankFile, False)[0]
        print("\n")
        print(bankedNames)
        print("\n")
        addedNames = util.shallowCopy(foundData)
        addedNames = util.deleteSimularItems(bankedNames, addedNames)
        removedNames = util.shallowCopy(bankedNames)
        removedNames = util.deleteSimularItems(foundData, removedNames)
        bankedNames = util.deleteSimularItems(removedNames, bankedNames)
        for name in addedNames:
            bankedNames.append(name)
        if len(removedNames) > 0:
            print("NON TILEBASED: " + str(removedNames))
            changeMaps(bankName, removedNames, False)
        writeOutBank(bankFile, bankedNames, -1, printMe)
    bankFile.close()
예제 #2
0
 def saveMap(self):
     '''Basic map saving functionallity'''
     fileName = input("Save level as (Without .lvl extention)(enter 'x' to cancel): ")
     if fileName == 'x':
         print("Save cancelled");
         return 0;
     fileName += ".lvl"
     filePath = "levels/" + fileName
     try:
         file = open(filePath, 'r');
         found = True;
         file.close();
     except:
         found = False;
     if found:
         answer = util.ask("Level already created.  Overight?: (Yes/No) ");
         if answer == True:
             found = False;
         else:
             print("Save canceled!");
     if found == False:    
         file = open(filePath, 'w')
         mapOutPut = "mapWidth " + str(self.cols) + "\nmapHeight " + str(self.rows) + "\n" + self.getMapString()
         file.write(mapOutPut);
         file.close();
         for layer in self.layerList:
             layer.tileListCatch = util.shallowCopy(layer.tileList);
         print(fileName+" saved");
예제 #3
0
def checkBankForUpdate(bankName, foundData, tileBased=True, printMe=False):
    '''checks the bank with the given bank name to see if anything from the given list, found data, has been added or removed'''    
    #images = findAllFiles("art/"+fileName+"/");
    bankFile = open(bankName+".txt","r+");
    if tileBased:
        bankedData = getBankedData(bankFile);
        bankedNames = bankedData[0];bankedASCIIs = bankedData[1];
        addedNames = util.shallowCopy(foundData);#Figure out what has been added
        addedNames = util.deleteSimularItems(bankedNames, addedNames);
        removedNames = util.shallowCopy(bankedNames);#Figure out what has been removed
        removedNames = util.deleteSimularItems(foundData, removedNames);
        removedASCIIs = []
        for i in removedNames:
            if printMe:
                print(i + " has been removed, removing ascii representation from pool")
            removedASCIIs.append(bankedASCIIs.pop(bankedNames.index(i)));#Removes it from the other an adds it to the removed list
            bankedNames.pop(bankedNames.index(i));
        if len(removedASCIIs) > 0:
            print("TILEBASED:"+str(removedASCIIs));
            changeMaps(bankName,removedASCIIs);
        asciiCatch = getNewASCIIs(addedNames, bankedASCIIs, printMe);
        for name in addedNames:
            bankedNames.append(name);
        writeOutBank(bankFile, bankedNames, bankedASCIIs, printMe);
        #bankedNames = util.deleteSimularItems(removedNames, bankedNames);
        #writeOutBank(foundData, bankFile, bankedNames, bankedASCIIs)
    else:
        bankedNames = getBankedData(bankFile, False)[0];
        print("\n")
        print(bankedNames)
        print("\n")
        addedNames = util.shallowCopy(foundData);
        addedNames = util.deleteSimularItems(bankedNames, addedNames);
        removedNames = util.shallowCopy(bankedNames);
        removedNames = util.deleteSimularItems(foundData, removedNames);
        bankedNames = util.deleteSimularItems(removedNames, bankedNames);
        for name in addedNames:
            bankedNames.append(name);
        if len(removedNames) > 0:
            print("NON TILEBASED: "+str(removedNames));
            changeMaps(bankName, removedNames, False)
        writeOutBank(bankFile, bankedNames, -1, printMe);
    bankFile.close();