Overlay Component

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 1

class_name OverlayComponent

extends Node2D

@export var unit: Unit


@export var tileBorder: int = 5

@onready var tileMap: TileMap = unit.turnBasedMovementComponent.tileMap


@onready var tileSize = tileMap.tile_set.tile_size
@onready var grid: AStarGrid2D = unit.turnBasedMovementComponent.tileMap.grid
@onready var platformer_tile_01 = $"../../../Node2D/PlatformerTile01"

func _process(_delta):
queue_redraw()

func _draw() -> void:


_drawMapTiles()

func _printTile(tile : PackedVector2Array, color : Color = Color.WHITE):


if tile:
pt = Vector2(0,200)
var points = [ Vector2(), Vector2(0,80), Vector2(80,80), Vector2(120,40),
Vector2(80,0) ]
var pv2a = _makePoolVector2Array(points, pt)
var pColour = PoolColorArray([Color.white])
var uv = []
for v in pv2a:
uv.push_back(v / Vector2(120, 80))
draw_polygon(pv2a, pColour, PoolVector2Array(uv))
draw_polygon(tile, color, SCREEN_UV)

func _drawMapTiles():
if unit.turnBasedMovementComponent.isMoving:
return

if tileMap:
#Draw squares on tiles
var arrayOfCells = unit.turnBasedMovementComponent.tilesInRange

for i in arrayOfCells.size():
if unit._isWalkableTile(arrayOfCells[i]):
var cell = tileMap.map_to_local(arrayOfCells[i]) -
unit.global_position
var _cellX = cell + Vector2(tileSize.x/2 - tileBorder*2, 0)
var _cellY = cell + Vector2(0, tileSize.y/2 - tileBorder)
var _cellX2 = cell - Vector2(tileSize.x/2 - tileBorder*2,
0)
var _cellY2 = cell - Vector2(0, tileSize.y/2 - tileBorder)
var points: PackedVector2Array = [_cellY2, _cellX, _cellY,
_cellX2]
_printTile(points)

You might also like