14 lines
650 B
GDScript
14 lines
650 B
GDScript
@tool
|
|
extends Node2D
|
|
func _process(_delta: float) -> void:
|
|
material.set_shader_parameter("overlay",get_parent().color_overlay)
|
|
queue_redraw()
|
|
func _draw() -> void:
|
|
var available := get_viewport_rect().size if not Engine.is_editor_hint() else Vector2(672,768)
|
|
var scale_factor := minf(available.x/224,available.y/256)
|
|
# Whole-number enlargement preserves equal pixel widths whenever it fits.
|
|
if scale_factor>=1: scale_factor = floorf(scale_factor)
|
|
var size := Vector2(224,256)*scale_factor
|
|
draw_rect(Rect2(Vector2.ZERO,available),Color.BLACK)
|
|
draw_texture_rect($"../PixelScreen".get_texture(),Rect2(((available-size)*.5).floor(),size),false)
|