godot-mota/src/hud/FlyDialog.gd

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)