2020-04-18 07:03:18 +00:00
|
|
|
extends ColorRect
|
|
|
|
|
2020-04-20 16:12:22 +00:00
|
|
|
|
2020-05-01 17:47:10 +00:00
|
|
|
func _ready() -> void:
|
2021-11-25 12:48:30 +00:00
|
|
|
update_rect()
|
|
|
|
|
|
|
|
|
|
|
|
func update_rect() -> void:
|
2020-06-04 20:20:20 +00:00
|
|
|
rect_size = Global.current_project.size
|
2021-01-28 19:21:48 +00:00
|
|
|
if self == Global.transparent_checker:
|
|
|
|
fit_rect(Global.current_project.get_tile_mode_rect())
|
2021-11-25 12:48:30 +00:00
|
|
|
Global.second_viewport.get_node("Viewport/TransparentChecker").update_rect()
|
|
|
|
Global.small_preview_viewport.get_node("Viewport/TransparentChecker").update_rect()
|
2020-04-18 07:03:18 +00:00
|
|
|
material.set_shader_param("size", Global.checker_size)
|
|
|
|
material.set_shader_param("color1", Global.checker_color_1)
|
|
|
|
material.set_shader_param("color2", Global.checker_color_2)
|
2020-08-17 19:30:58 +00:00
|
|
|
material.set_shader_param("follow_movement", Global.checker_follow_movement)
|
|
|
|
material.set_shader_param("follow_scale", Global.checker_follow_scale)
|
|
|
|
|
|
|
|
|
2021-11-25 12:48:30 +00:00
|
|
|
func update_offset(offset: Vector2, scale: Vector2) -> void:
|
2020-08-17 19:30:58 +00:00
|
|
|
material.set_shader_param("offset", offset)
|
|
|
|
material.set_shader_param("scale", scale)
|
|
|
|
|
|
|
|
|
2020-11-26 00:05:05 +00:00
|
|
|
func _on_TransparentChecker_resized() -> void:
|
2020-08-17 19:30:58 +00:00
|
|
|
material.set_shader_param("rect_size", rect_size)
|
2020-11-13 18:12:20 +00:00
|
|
|
|
|
|
|
|
2021-11-25 12:48:30 +00:00
|
|
|
func fit_rect(rect: Rect2) -> void:
|
2021-01-28 19:21:48 +00:00
|
|
|
rect_position = rect.position
|
|
|
|
rect_size = rect.size
|
2021-02-02 15:29:19 +00:00
|
|
|
|
|
|
|
|
2021-11-25 12:48:30 +00:00
|
|
|
func transparency(value: float) -> void:
|
2021-02-02 15:29:19 +00:00
|
|
|
# first make viewport transparent then background and then viewport
|
2021-11-22 02:47:41 +00:00
|
|
|
if value == 1.0:
|
2021-02-02 15:29:19 +00:00
|
|
|
get_parent().transparent_bg = false
|
|
|
|
get_tree().get_root().set_transparent_background(false)
|
|
|
|
else:
|
|
|
|
get_parent().transparent_bg = true
|
|
|
|
get_tree().get_root().set_transparent_background(true)
|
2021-02-02 15:48:17 +00:00
|
|
|
|
2021-02-02 15:29:19 +00:00
|
|
|
# this controls opacity 0 for transparent, 1 or a greater value than 1 is opaque
|
|
|
|
# i have set a minimum amount for the fade (We would'nt want the canvas to dissapear now would we?)
|
2021-11-25 12:48:30 +00:00
|
|
|
material.set("shader_param/alpha", clamp(value, 0.1, 1))
|