MagicNStuff/source/addons/panku_console/modules/snake/module.gd
2025-02-25 22:07:11 +01:00

38 lines
1.1 KiB
GDScript

class_name PankuModuleSnakeGame extends PankuModule
var leader_board_arr = []
func init_module():
leader_board_arr = load_module_data("leader_board", [])
func add_snake_window():
var snake_ui := preload("res://addons/panku_console/modules/snake/snake.tscn").instantiate()
var window:PankuLynxWindow = core.windows_manager.create_window(snake_ui)
window.queue_free_on_close = true
window.set_window_title_text("Snake Game")
window.position = window.get_layout_position(Control.PRESET_CENTER)
window.move_to_front()
window.size = Vector2(
snake_ui.snake_game.MAP_SIZE * snake_ui.CELL_SIZE, 0)
window.size.y = window.size.x + 24
core.get_tree().root.get_viewport().gui_release_focus()
snake_ui.snake_game.game_over.connect(
func():
var record = {
"timestamp": Time.get_datetime_string_from_system(),
"score": snake_ui.snake_game.get_snake_length()
}
leader_board_arr.append(record)
leader_board_arr.sort_custom(
func(a, b):
return a['score'] > b['score']
)
if leader_board_arr.size() > 10:
leader_board_arr.resize(10)
save_module_data("leader_board", leader_board_arr)
)