@tool extends Node2D class_name TileRenderer @export var base_color: Color = Color.SPRING_GREEN @export var top_color: Color = Color.WEB_GREEN var drawbox: Rect2 var drawbox_top: Rect2 var tile_transform: TileTransform var grid: Grid var text_pos: Vector2 func _ready(): tile_transform = Util.find_parent_type(self, TileTransform) grid = Util.find_parent_type(self, Grid) func _process(_delta): queue_redraw() func _draw(): _update_drawbox() draw_rect(drawbox, base_color, true) draw_rect(drawbox_top, top_color, true) draw_string(ThemeDB.fallback_font, text_pos, "House", HORIZONTAL_ALIGNMENT_CENTER, drawbox_top.size.x, 12) func _update_drawbox(): var size = self.tile_transform.size * (self.grid.cell_size if self.grid != null else 100) var box = Rect2(size / -2.0, size) if not is_node_ready(): return self.drawbox = box self.drawbox_top = Rect2( drawbox.position.x + 2.0, drawbox.position.y + drawbox.size.y - 18.0, drawbox.size.x - 4.0, 16.0 ) # drawbox_top.size.y = 16 text_pos = drawbox_top.position text_pos.y += drawbox_top.size.y - 3