extends Node class_name Room #@export var visual: TextureRect # One entry per valid combination # Key = sorted list of enemy IDs + their pose index #@export var render_map: Dictionary @export var enemies: Array[cCharacter] # all AI that *could* appear here @export var room_id: Global.LocationID var last_key := "" var texture: Texture2D var render_map: Dictionary #func _process(_delta): #var key := _build_render_key() #if key == last_key: #return # #last_key = key # # #if render_map.has(key): #visual.texture = render_map[key] #else: #visual.texture = null # or fallback func _process(_delta): var key := _build_render_key() if key == null: texture = render_map[""] if key == last_key: return # last_key = key # if render_map.has(key): texture = render_map[key] else: texture = render_map["default"] func getTexture() -> Texture2D: return texture func _build_render_key() -> String: var entries := [] for enemy in enemies: var presence : int = enemy.get_room_presence(room_id) if presence >= 0: entries.append("%s:%d" % [enemy.name, presence]) entries.sort() return "|".join(entries)