class_name Chunk
extends TileMap

var x:int = -1
var y:int = -1

# Called when the node enters the scene tree for the first time.
func _init(ypos:int, xpos:int):
	self.x = xpos
	self.y = ypos
	
	#self.texture_filter = CanvasItem.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC
	self.cell_quadrant_size = 32
	
	self.name = "Chunk [%d,%d]" % [x, y]	
	self.set_tileset(Globals.TILESET_TERRAIN)
	self.position = Vector2i(
		x*Globals.CHUNK_SIZE.x*Globals.TILE_SIZE_X,
		y*Globals.CHUNK_SIZE.y*Globals.TILE_SIZE_Y
		)
		
		
func _ready():
	generate_chunk()
	
	
# draws borders around the chunk
#func _draw():
#	self.draw_rect(
#		Rect2(
#			Vector2(0,0),
#			Vector2(
#				Globals.CHUNK_SIZE.x*Globals.TILE_SIZE_X, 
#				Globals.CHUNK_SIZE.y*Globals.TILE_SIZE_Y)
#			),
#		Color(0,0,0,0.5),
#		false
#		)


func generate_chunk() -> void:	
	for row in Globals.CHUNK_SIZE.y:
		for col in Globals.CHUNK_SIZE.x:			
			var tile_data: Array = Globals.map_tile_data[row+y*Globals.CHUNK_SIZE.y][col+x*Globals.CHUNK_SIZE.x]			
			# layer | tile coords at tilemap | tilemap id | coords of the tile at tileset | alternative tile
			self.set_cell(
				Globals.LAYER_TERRAIN,
				Vector2i(col, row),
				0,
				tile_data[0],
				tile_data[1]
			)



