package floor

import (
	"image"

	"gitlab.univ-nantes.fr/jezequel-l/quadtree/assets"
	"gitlab.univ-nantes.fr/jezequel-l/quadtree/configuration"

	"github.com/hajimehoshi/ebiten/v2"
)

/// EXTENSION 4 : téléportation (seconde partie) ///

// DrawTP permet d'afficher les téléporteurs (parce que sinon bonne chance pour les retrouver)
func (f Floor) DrawTP(screen *ebiten.Image, nb_portails, portail_depart_x, portail_depart_y, portail_arrivee_x, portail_arrivee_y, topLeftX, topLeftY int) {

	for y := range f.content {
		for x := range f.content[y] {

			// Téléporteur 1 //
			if y+topLeftY == portail_depart_y && x+topLeftX == portail_depart_x && nb_portails >= 1 {
				op := &ebiten.DrawImageOptions{}
				op.GeoM.Translate(float64(x*configuration.Global.TileSize), float64(y*configuration.Global.TileSize))
				screen.DrawImage(assets.TpImage.SubImage(
					image.Rect(0, 0, configuration.Global.TileSize, configuration.Global.TileSize),
				).(*ebiten.Image), op)

				// Téléporteur 2
			} else if y+topLeftY == portail_arrivee_y && x+topLeftX == portail_arrivee_x && nb_portails == 2 {
				op := &ebiten.DrawImageOptions{}
				op.GeoM.Translate(float64(x*configuration.Global.TileSize), float64(y*configuration.Global.TileSize))
				screen.DrawImage(assets.TpImage.SubImage(
					image.Rect(0, configuration.Global.TileSize, configuration.Global.TileSize, configuration.Global.TileSize*2),
				).(*ebiten.Image), op)
			}
		}
	}
}
