grunk/src/world/gunk_body/draw_controller.gd

27 lines
471 B
GDScript3
Raw Normal View History

class_name DrawController extends Control
2025-03-02 13:16:40 -07:00
## Emitted the frame after at least one paint operation was done.
signal painted
var _draw_queue: Array[Callable] = []
2025-03-02 13:16:40 -07:00
var _dirty := false
func queue_draw(op: Callable) -> void:
_draw_queue.push_back(op)
_dirty = true
func _draw() -> void:
while _draw_queue:
var op: Callable = _draw_queue.pop_front()
op.call()
func _process(_delta: float) -> void:
if _dirty:
queue_redraw()
_dirty = false
2025-03-02 13:16:40 -07:00
painted.emit()