76 lines
2.1 KiB
GDScript
76 lines
2.1 KiB
GDScript
extends Node2D
|
|
|
|
@export var camera : Camera2D
|
|
@export var map : Sprite2D
|
|
@export var cyclone_holder : Node2D
|
|
|
|
@export var speed_slider : HSlider
|
|
@export var speed_label : Label
|
|
@export var file_picker : FileDialog
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready() -> void:
|
|
pass # Replace with function body.
|
|
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _process(delta: float) -> void:
|
|
#check_edges()
|
|
update_zoom()
|
|
update_ui()
|
|
|
|
func check_edges():
|
|
#var right_center = map.global_position + Vector2(map.texture.get_width(), 0)
|
|
#var top_center = map.global_position + Vector2(0, map.texture.get_height())
|
|
var map_top : float = map.global_position.y + map.texture.get_height()
|
|
var map_bottom : float = map.global_position.y - map.texture.get_height()
|
|
var map_right : float = map.global_position.x + map.texture.get_width()
|
|
var map_left : float = map.global_position.x - map.texture.get_width()
|
|
#print("Top: " + str(map_top))
|
|
#print("Bottom: " + str(map_top))
|
|
#print("Left: " + str(map_top))
|
|
#print("Right: " + str(map_top))
|
|
|
|
#for cyclone in cyclones:
|
|
#pass
|
|
|
|
pass
|
|
|
|
func update_zoom():
|
|
#print(1/camera.zoom.x)
|
|
var scale_level : float = clampf(1/camera.zoom.x,0,1)
|
|
for cyclone in cyclone_holder.get_children():
|
|
cyclone.visuals.scale = Vector2(scale_level,scale_level)
|
|
|
|
func update_ui():
|
|
var selected_speed : float = speed_slider.value
|
|
var actual_speed : float
|
|
# 3=1.0x, 2=0.5x, 1=0.25x, 0=0.0x, 4=2x 5=3x 6=4x
|
|
match int(selected_speed):
|
|
0:
|
|
actual_speed = 0.0001
|
|
1:
|
|
actual_speed = 0.25
|
|
2:
|
|
actual_speed = 0.5
|
|
3:
|
|
actual_speed = 1
|
|
4:
|
|
actual_speed = 2
|
|
5:
|
|
actual_speed = 4
|
|
6:
|
|
actual_speed = 8
|
|
speed_label.text = "Speed: " + str(round(actual_speed*100)/100) + "x"
|
|
Engine.time_scale = actual_speed
|
|
|
|
|
|
|
|
func _on_load_image_pressed() -> void:
|
|
file_picker.show()
|
|
|
|
|
|
func _on_file_dialog_file_selected(path: String) -> void:
|
|
var new_image : Image = Image.load_from_file(path)
|
|
var image_texture : ImageTexture = ImageTexture.create_from_image(new_image)
|
|
map.texture = image_texture
|