Files
Five-Nights-At-Akers/Scripts/Logic/cRoom.gd
2026-03-24 12:56:35 -07:00

56 lines
1.1 KiB
GDScript

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)