class_name cCameraViewer extends TextureRect var defaultTexture: Texture2D var activeCamera: cCamera = null var activeCameraID: int = -1 var activeTexture: Texture2D = null func _ready() -> void: clearCamera() func _process(delta: float) -> void: if activeCamera == null: return var newTexture = getCameraRender() if newTexture != activeTexture: activeTexture = newTexture renderCamera() func setCamera(id: int) -> void: clearCamera() activeCameraID = id activeCamera = Global.game.camera renderCamera() func renderCamera() -> void: if activeTexture == null: self.texture = defaultTexture else: self.texture = activeTexture func clearCamera() -> void: activeCamera = null activeCameraID = -1 activeTexture = defaultTexture renderCamera() func getCameraRender() -> Texture2D: if activeCamera == null: return defaultTexture var feed = activeCamera.getFeed() if feed == null: return defaultTexture return feed