extends ColorRect # Feeds the lunar shader the camera's position split into a CELL INDEX plus # a fraction within that cell, rather than a raw world position. See the # long note in Starfield.gd for why - identical reasoning, identical split. @onready var camera: Camera2D = get_node("../../Camera2D") func _process(_delta: float) -> void: var viewport_size: Vector2 = get_viewport_rect().size var cell_size: float = material.get_shader_parameter("cell_size") var p: Vector2 = camera.global_position / cell_size var cell: Vector2 = Vector2(floor(p.x), floor(p.y)) material.set_shader_parameter("camera_cell", cell) material.set_shader_parameter("camera_frac", p - cell) material.set_shader_parameter("camera_zoom", 1.0 / camera.zoom.x) material.set_shader_parameter("viewport_size", viewport_size)