package game

import "tetris/engine/core"

func CheckShapeCollision(pos core.Vec2i8, shape *Shape, grid *Grid) bool {
	for _, block := range shape.Coordinates() {
		block = pos.Add(block)

		// Can't collide if block is above the grid.
		if block.Y < 0 {
			continue
		}

		if block.X < 0 || block.X >= int8(grid.Width()) {
			return true
		}

		// Check if the block collides with the bottom of the grid.
		if block.Y >= int8(grid.Height()) {
			return true
		}

		if grid.At(byte(block.X), byte(block.Y)) != BLOCK_EMPTY {
			return true
		}
	}

	return false
}
