@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"))