hadean-godot/Scripts/TileRenderer.gd

48 lines
1.1 KiB
GDScript

@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