citylimits-next/scripts/Chunk.gd
2023-02-15 21:13:24 +02:00

58 lines
1.3 KiB
GDScript

class_name Chunk
extends TileMap
var x:int = -1
var y:int = -1
var should_remove:bool = false
# Called when the node enters the scene tree for the first time.
func _init(ypos:int, xpos:int, sr: bool):
self.x = xpos
self.y = ypos
self.should_remove = sr
#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]
)