38 lines
1.1 KiB
GDScript
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)
|
|
)
|