49 lines
1.3 KiB
GDScript
49 lines
1.3 KiB
GDScript
extends PopupDialog
|
|
|
|
onready var level_manager : LevelsManager = $"/root/Main/Level"
|
|
|
|
onready var level_label : Label = $"CurrentLevel"
|
|
|
|
onready var level_screenshot : TextureRect = $"Screenshot"
|
|
|
|
var display_level : int = -1
|
|
|
|
func show():
|
|
var current_level = level_manager.level
|
|
set_screenshot_by_level(current_level)
|
|
visible = true
|
|
|
|
func _on_Close_pressed():
|
|
visible = false
|
|
|
|
# 设置屏幕截图
|
|
func set_screenshot_by_level(level:int) -> void:
|
|
level_label.text = "魔塔 第%0*dF" % [2,level]
|
|
var image : Image = null
|
|
if level == level_manager.level:
|
|
image = get_viewport().get_texture().get_data()
|
|
else:
|
|
image = Image.new()
|
|
image.load(level_manager.get_screenshot_image_path(level))
|
|
image.flip_y()
|
|
var texture = ImageTexture.new()
|
|
texture.create_from_image(image,image.get_format())
|
|
level_screenshot.texture = texture
|
|
display_level = level
|
|
|
|
# 点击增加楼层
|
|
func _on_AddLevel_pressed():
|
|
if level_manager.get_go_to_levels().has(display_level + 1):
|
|
set_screenshot_by_level(display_level + 1)
|
|
|
|
# 点击减去楼层
|
|
func _on_SubLevel_pressed():
|
|
if level_manager.get_go_to_levels().has(display_level - 1):
|
|
set_screenshot_by_level(display_level - 1)
|
|
|
|
# 点击楼层截图视图回调
|
|
func _on_Screenshot_gui_input(event):
|
|
if event is InputEventMouseButton and event.pressed:
|
|
visible = false
|
|
level_manager.set_level(display_level)
|