54 lines
959 B
GDScript
54 lines
959 B
GDScript
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
|