extends TileMapLayer var tiles: Dictionary = {} @onready var numTiles: int = get_tile_set().get_source(0).get_tiles_count() #@onready var texSize: Vector2 = get_tile_set().get_tile_texture(get_tile_set().get_tile_id(0)) @onready var texSize: Vector2 = Vector2(32, 32) # TODO: get from tileSet @export var randomColors: bool = true var stateColMap: Dictionary = { } var rng: RandomNumberGenerator = RandomNumberGenerator.new() func get_tile_colour(pos: Vector2i) -> int: return tiles.get_or_add(pos, 0) # TODO: state should be an enum probably func set_tile(pos: Vector2i, state: int) -> void: self.set_cell(pos, 0, Vector2i(0, state%numTiles)) if randomColors: var col: Color = stateColMap.get_or_add(state, Color(rng.randf(), rng.randf(), rng.randf(), 1)) self.get_cell_tile_data(pos).set_modulate(col) tiles.erase(pos) tiles.get_or_add(pos, state)