28 lines
851 B
GDScript
28 lines
851 B
GDScript
@tool
|
|
extends ColorRect
|
|
|
|
@export var grid_size := Vector2i(32, 18):
|
|
set(value):
|
|
grid_size = value
|
|
if is_node_ready():
|
|
_update_material()
|
|
@export var monitor_boundary := 0:
|
|
set(value):
|
|
monitor_boundary = value
|
|
if is_node_ready():
|
|
_update_material()
|
|
|
|
func _ready() -> void:
|
|
theme_changed.connect(_update_material)
|
|
_update_material()
|
|
|
|
func _gui_input(_event: InputEvent) -> void:
|
|
accept_event()
|
|
|
|
func _update_material() -> void:
|
|
var shader_material := material as ShaderMaterial
|
|
shader_material.set_shader_parameter("grid_size", Vector2(grid_size))
|
|
shader_material.set_shader_parameter("monitor_boundary", float(monitor_boundary))
|
|
shader_material.set_shader_parameter("line_color", get_theme_color("instrument_grid", "SurfaceSide"))
|
|
shader_material.set_shader_parameter("boundary_color", get_theme_color("accent", "SurfaceSide"))
|