예제 #1
0
 def info(self):
     info = base.read('../Tittle/assets/maps/' + self.name + '_info.txt')
     tile_types = {}
     for line in info:
         if '!def ' in line:
             try:
                 if ' ^' in line:
                     line = line.replace('!def ^','')
                     clip = False
                 else:
                     line = line.replace('!def ', '')
                     clip = True
                 id, loc = line.split(': ', 1)
                 loc = loc.replace(')','')
                 sheet, pos = loc.split('(', 1)
                 pos_x, pos_y = pos.split(',', 1)
                 tile_types.setdefault(id,[])
                 tile_types[id].append(sheet)
                 tile_types[id].append(int(pos_x))
                 tile_types[id].append(int(pos_y))
                 tile_types[id].append(clip)
             except:
                 print("Error gathering info")
                 traceback.print_exc()
                 raise SystemExit
         elif 'type: ' in line:
             self.type = line.replace('type: ', '')
     print(tile_types)
     return tile_types
     
     
예제 #2
0
def delete():
    book_id = base.base_id
    try:
        book_id = int(argv[1])
    except Exception as e:
        print(argv[1], 'is not an integer.')
        return
    if book_id <= base.base_id:
        print(argv[1], 'is not an illegal id.')
        return
    status = base.read()
    if book_id - base.base_id > len(status):
        print('Book id', book_id, 'not exist.')
        return
    deleted_book = status.pop(book_id - base.base_id - 1)
    try:
        affirmative = input(
            "Delete item:\n  %s %s/%s\nSure? (Y/else) " %
            (deleted_book['book_name'], deleted_book['current_page'],
             deleted_book['book_page']))
    except KeyboardInterrupt:
        print('\nCanceled.')
        return
    if affirmative == 'Y':
        base.write(status)
        print('Deleted.')
    else:
        print('Canceled.')
예제 #3
0
def show():
    status = base.read()
    if status == []:
        print("No books. Use '--add' option to add a book.")
    i = base.base_id + 1
    for book in status:
        percent_info = "%3d%%" % (int(
            float(book['current_page']) / float(book['book_page']) * 100))
        page_info = "%03d/%03d" % (int(
            book['current_page']), int(book['book_page']))
        print('No.' + str(i),
              percent_info,
              page_info,
              book['book_name'],
              sep='  ')
        i += 1
예제 #4
0
def add():
    status = base.read()
    page_number = 0
    try:
        page_number = int(argv[2])
    except Exception as e:
        print(argv[2], 'is not an integer.')
        return
    if page_number <= 0:
        print(argv[2], 'is not an positive integer.')
        return
    book_name = argv[1].replace('\t', ' ')
    page_number_str = str(page_number)
    status.append({'book_name': book_name,
                   'book_page': page_number_str,
                   'current_page': '0'})
    base.write(status)
    print("Book <%s> (%s) added." % (book_name, page_number_str))
예제 #5
0
def read():
    book_id = base.base_id
    current_page = 0
    try:
        book_id = int(argv[1])
    except Exception as e:
        print(argv[1], 'is not an integer.')
        return
    if book_id <= base.base_id:
        print(argv[1], 'is not an illegal id.')
        return
    try:
        current_page = int(argv[2])
    except Exception as e:
        print(argv[2], 'is not an integer.')
        return
    if current_page <= 0:
        print(argv[2], 'is not an positive integer.')
        return
    status = base.read()
    if book_id - base.base_id > len(status):
        print('Book id', book_id, 'not exist.')
        return
    book_status = status[book_id - base.base_id - 1]
    book_page_str = book_status['book_page']
    if int(book_page_str) < current_page:
        print('Incorrect page.')
        return
    current_page_str = str(current_page)
    origin_page_str = book_status['current_page']
    book_status['current_page'] = current_page_str
    book_name = book_status['book_name']
    base.write(status)
    print("Updated: %s %s/%s->%s/%s" %
          (book_name, origin_page_str, book_page_str, current_page_str,
           book_page_str))
예제 #6
0
 def load(self):
     self.map_array = base.read('../Tittle/assets/maps/' + self.name + '_map.txt')