hadean-godot/Scripts/TileRenderer.gd

48 lines
1.1 KiB
GDScript
Raw Normal View History

2024-05-13 18:16:23 -04:00
@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
2025-09-24 20:01:45 -04:00
var tile_transform: TileTransform
var grid: Grid
var text_pos: Vector2
2024-05-13 18:16:23 -04:00
func _ready():
2025-09-24 20:01:45 -04:00
tile_transform = Util.find_parent_type(self, TileTransform)
grid = Util.find_parent_type(self, Grid)
2024-05-13 18:16:23 -04:00
func _process(_delta):
queue_redraw()
func _draw():
2025-09-24 20:01:45 -04:00
_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)
2024-05-13 18:16:23 -04:00
func _update_drawbox():
2025-09-24 20:01:45 -04:00
var size = self.tile_transform.size * (self.grid.cell_size if self.grid != null else 100)
var box = Rect2(size / -2.0, size)
2024-05-13 18:16:23 -04:00
if not is_node_ready():
return
2025-09-24 20:01:45 -04:00
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