42 lines
889 B
GDScript
42 lines
889 B
GDScript
@tool
|
|
extends Node2D
|
|
class_name Rectangle2D
|
|
|
|
@export var color: Color = Color(1.0, 1.0, 1.0) :
|
|
set(new_color):
|
|
if color == new_color:
|
|
return
|
|
color = new_color
|
|
queue_redraw()
|
|
@export var size: Vector2 = Vector2(10, 10) :
|
|
set(new_size):
|
|
if size == new_size:
|
|
return
|
|
size = new_size
|
|
queue_redraw()
|
|
@export var filled: bool = true :
|
|
set(new_filled):
|
|
if filled == new_filled:
|
|
return
|
|
filled = new_filled
|
|
queue_redraw()
|
|
@export var line_width: float = -1.0 :
|
|
set(new_line_width):
|
|
if line_width == new_line_width:
|
|
return
|
|
line_width = new_line_width
|
|
queue_redraw()
|
|
@export var centered: bool = false :
|
|
set(new_centered):
|
|
if centered == new_centered:
|
|
return
|
|
centered = new_centered
|
|
queue_redraw()
|
|
|
|
|
|
func _draw() -> void:
|
|
var rect = Rect2(Vector2.ZERO, size)
|
|
if centered:
|
|
rect.position -= rect.size / 2
|
|
draw_rect(rect, color, filled, line_width)
|