main
parent
52902e988c
commit
1f2e610ac9
41
main.py
41
main.py
|
@ -404,12 +404,15 @@ def quick_game():
|
||||||
|
|
||||||
|
|
||||||
def render_albums():
|
def render_albums():
|
||||||
global current_mode, album_name
|
global current_mode, album_name, album_delete
|
||||||
current_hovered_index = -1
|
current_hovered_index = -1
|
||||||
size_to_y = {"small": 25, "medium": 35, "big": 65}
|
size_to_y = {"small": 25, "medium": 35, "big": 65}
|
||||||
y = size_to_y[current_size]
|
y = size_to_y[current_size]
|
||||||
|
|
||||||
for hover_index, album in enumerate(storage["albums"]):
|
# Collect albums to be deleted
|
||||||
|
albums_to_delete = []
|
||||||
|
|
||||||
|
for hover_index, album in enumerate(list(storage["albums"].keys())):
|
||||||
render_text(album, (size[1], y), screen)
|
render_text(album, (size[1], y), screen)
|
||||||
album_rect = pygame.Rect(size[0], y, size[2], size[3])
|
album_rect = pygame.Rect(size[0], y, size[2], size[3])
|
||||||
album_hover = album_rect.collidepoint(pygame.mouse.get_pos())
|
album_hover = album_rect.collidepoint(pygame.mouse.get_pos())
|
||||||
|
@ -418,17 +421,31 @@ def render_albums():
|
||||||
current_hovered_index = hover_index
|
current_hovered_index = hover_index
|
||||||
|
|
||||||
if album_hover and pygame.mouse.get_pressed()[0]:
|
if album_hover and pygame.mouse.get_pressed()[0]:
|
||||||
album_name = album
|
if album_delete:
|
||||||
if album_name != album:
|
if album in storage["albums"]:
|
||||||
album_name = None
|
albums_to_delete.append(album)
|
||||||
|
album_delete = False
|
||||||
|
else:
|
||||||
|
print(f"Album {album} not found in storage.")
|
||||||
|
else:
|
||||||
|
album_name = album
|
||||||
|
if album_name != album:
|
||||||
|
album_name = None
|
||||||
|
|
||||||
if album_name is not None:
|
if album_name is not None:
|
||||||
current_mode = "select"
|
current_mode = "select"
|
||||||
|
|
||||||
return album
|
return album
|
||||||
|
|
||||||
y += cons[0]
|
y += cons[0]
|
||||||
|
|
||||||
|
for album in albums_to_delete:
|
||||||
|
del storage["albums"][album]
|
||||||
|
|
||||||
|
if albums_to_delete:
|
||||||
|
with open(DATA_FILE, 'w') as data_file:
|
||||||
|
data_file.write(json.dumps(storage, indent=3))
|
||||||
|
|
||||||
if current_hovered_index == -1:
|
if current_hovered_index == -1:
|
||||||
current_hovered_index = 0
|
current_hovered_index = 0
|
||||||
arrow_image = Image((cons[1], 0), (cons[2], size[1] + cons[0] * current_hovered_index + cons[3]), (cons[4], cons[4]))
|
arrow_image = Image((cons[1], 0), (cons[2], size[1] + cons[0] * current_hovered_index + cons[3]), (cons[4], cons[4]))
|
||||||
|
@ -991,7 +1008,7 @@ settings_buttons = [info_button, menu_button, stats_button, continue_button, clo
|
||||||
do_not_save = False
|
do_not_save = False
|
||||||
|
|
||||||
|
|
||||||
def button_check(pressed_button, run, current_mode, timer_running):
|
def button_check(pressed_button, run, current_mode, timer_running, album_delete):
|
||||||
global completed, not_shuffled, current_timer_text, current_moves, real_time
|
global completed, not_shuffled, current_timer_text, current_moves, real_time
|
||||||
do_not_save = False
|
do_not_save = False
|
||||||
if pressed_button == close_button:
|
if pressed_button == close_button:
|
||||||
|
@ -1009,6 +1026,7 @@ def button_check(pressed_button, run, current_mode, timer_running):
|
||||||
elif pressed_button == delete_button:
|
elif pressed_button == delete_button:
|
||||||
if current_mode == "menu":
|
if current_mode == "menu":
|
||||||
album_deletion()
|
album_deletion()
|
||||||
|
album_delete = True
|
||||||
else:
|
else:
|
||||||
# Not finished yet
|
# Not finished yet
|
||||||
pass
|
pass
|
||||||
|
@ -1029,7 +1047,7 @@ def button_check(pressed_button, run, current_mode, timer_running):
|
||||||
elif pressed_button == stats_button:
|
elif pressed_button == stats_button:
|
||||||
current_mode = "stats"
|
current_mode = "stats"
|
||||||
|
|
||||||
return run, current_mode, timer_running, do_not_save
|
return run, current_mode, timer_running, do_not_save, album_delete
|
||||||
|
|
||||||
|
|
||||||
win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE,
|
win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE,
|
||||||
|
@ -1062,6 +1080,7 @@ def data_check(current_mode):
|
||||||
# Game state
|
# Game state
|
||||||
run = True
|
run = True
|
||||||
current_mode = "menu"
|
current_mode = "menu"
|
||||||
|
album_delete = False
|
||||||
# Dragging and mouse interaction
|
# Dragging and mouse interaction
|
||||||
dragging = False
|
dragging = False
|
||||||
can_move = False
|
can_move = False
|
||||||
|
@ -1174,7 +1193,7 @@ while run:
|
||||||
for button in current_buttons:
|
for button in current_buttons:
|
||||||
if button.rect.collidepoint(start_pos):
|
if button.rect.collidepoint(start_pos):
|
||||||
pressed_button = button
|
pressed_button = button
|
||||||
run, current_mode, timer_running, do_not_save = button_check(pressed_button, run, current_mode, timer_running)
|
run, current_mode, timer_running, do_not_save, album_delete = button_check(pressed_button, run, current_mode, timer_running, album_delete)
|
||||||
|
|
||||||
elif event.type == pygame.MOUSEMOTION and can_move:
|
elif event.type == pygame.MOUSEMOTION and can_move:
|
||||||
new_pos = pygame.mouse.get_pos()
|
new_pos = pygame.mouse.get_pos()
|
||||||
|
|
Loading…
Reference in New Issue