tooltips and ui
This commit was merged in pull request #42.
This commit is contained in:
@@ -49,18 +49,47 @@ func enable_photo_mode() -> void:
|
||||
current_pan = Vector2.ZERO
|
||||
|
||||
if camera:
|
||||
if previous_camera:
|
||||
camera.size = previous_camera.size
|
||||
camera.fov = previous_camera.fov
|
||||
|
||||
if rotation_target and "is_zoomed" in rotation_target:
|
||||
is_zoomed = rotation_target.is_zoomed
|
||||
if "zoom_tween" in rotation_target and rotation_target.zoom_tween and rotation_target.zoom_tween.is_valid():
|
||||
rotation_target.zoom_tween.kill()
|
||||
else:
|
||||
if abs(camera.size - zoom_size) < abs(camera.size - normal_size):
|
||||
is_zoomed = true
|
||||
else:
|
||||
is_zoomed = false
|
||||
|
||||
var target_size = zoom_size if is_zoomed else normal_size
|
||||
if not is_equal_approx(camera.size, target_size):
|
||||
zoom_tween = create_tween()
|
||||
zoom_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
|
||||
zoom_tween.tween_property(camera, "size", target_size, zoom_time)
|
||||
zoom_tween.parallel().tween_property(camera, "fov", target_size, zoom_time)
|
||||
|
||||
camera.make_current()
|
||||
|
||||
func disable_photo_mode() -> void:
|
||||
is_active = false
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
||||
if previous_camera:
|
||||
previous_camera.size = camera.size
|
||||
previous_camera.fov = camera.fov
|
||||
|
||||
if rotation_target and rotation_target.has_method("sync_zoom"):
|
||||
rotation_target.sync_zoom(camera.size, camera.fov, is_zoomed)
|
||||
|
||||
previous_camera.make_current()
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event is InputEventKey and event.pressed and not event.echo:
|
||||
if event.keycode == KEY_Z and camera:
|
||||
is_zoomed = !is_zoomed
|
||||
if event is InputEventMouseButton and event.pressed:
|
||||
if event.button_index == MOUSE_BUTTON_WHEEL_UP and camera:
|
||||
if is_zoomed == false:
|
||||
return
|
||||
is_zoomed = false
|
||||
var target_size = zoom_size if is_zoomed else normal_size
|
||||
|
||||
if zoom_tween and zoom_tween.is_valid():
|
||||
@@ -70,6 +99,34 @@ func _input(event: InputEvent) -> void:
|
||||
zoom_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
|
||||
zoom_tween.tween_property(camera, "size", target_size, zoom_time)
|
||||
zoom_tween.parallel().tween_property(camera, "fov", target_size, zoom_time)
|
||||
|
||||
elif event.button_index == MOUSE_BUTTON_WHEEL_DOWN and camera:
|
||||
if is_zoomed == true:
|
||||
return
|
||||
is_zoomed = true
|
||||
var target_size = zoom_size if is_zoomed else normal_size
|
||||
|
||||
if zoom_tween and zoom_tween.is_valid():
|
||||
zoom_tween.kill()
|
||||
|
||||
zoom_tween = create_tween()
|
||||
zoom_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
|
||||
zoom_tween.tween_property(camera, "size", target_size, zoom_time)
|
||||
zoom_tween.parallel().tween_property(camera, "fov", target_size, zoom_time)
|
||||
|
||||
if is_active:
|
||||
if event.is_action_pressed("exit_photo_mode") and not is_making_photo:
|
||||
GameState.on_disable_photo_mode_request.emit()
|
||||
elif event.is_action_pressed("take_photo"):
|
||||
if not is_making_photo:
|
||||
is_making_photo = true
|
||||
|
||||
GameState.on_photo_taken_prepare.emit()
|
||||
|
||||
await RenderingServer.frame_post_draw
|
||||
captured_image = get_viewport().get_texture().get_image()
|
||||
|
||||
GameState.on_photo_taken_started.emit()
|
||||
|
||||
if event.is_action_pressed("toggle_photo_mode"):
|
||||
if get_tree().paused:
|
||||
@@ -82,18 +139,6 @@ func _input(event: InputEvent) -> void:
|
||||
|
||||
if event is InputEventMouseMotion and is_active:
|
||||
total_yaw -= event.relative.x * rotation_speed
|
||||
|
||||
if event.is_action_pressed("take_photo"):
|
||||
if !is_active or is_making_photo:
|
||||
return
|
||||
is_making_photo = true
|
||||
|
||||
GameState.on_photo_taken_prepare.emit()
|
||||
|
||||
await RenderingServer.frame_post_draw
|
||||
captured_image = get_viewport().get_texture().get_image()
|
||||
|
||||
GameState.on_photo_taken_started.emit()
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if not is_active:
|
||||
|
||||
Reference in New Issue
Block a user