Camera system YAY!!!
This commit is contained in:
53
Scripts/Gameplay/Camera/cCameraViewer.gd
Normal file
53
Scripts/Gameplay/Camera/cCameraViewer.gd
Normal file
@@ -0,0 +1,53 @@
|
||||
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
|
||||
Reference in New Issue
Block a user