Rendering how I want for now

This commit is contained in:
2025-11-28 15:11:58 -06:00
parent d532a9ab21
commit 5573ad815f
15 changed files with 199 additions and 376 deletions

View File

@@ -1,9 +1,9 @@
class_name TransitionSingleton extends Control
enum FadeType {
NONE,
FADE_IN,
FADE_OUT
NONE,
FADE_IN,
FADE_OUT
}
signal fadeOutStart
@@ -18,64 +18,64 @@ var fadeTime:float = 0.0
var inFade = false
func _enter_tree() -> void:
$Overlay.visible = false
$Overlay.visible = false
func _process(delta: float) -> void:
if fadeType == FadeType.NONE:
return
if fadeType == FadeType.NONE:
return
fadeTime += delta
var t:float = fadeTime / fadeDuration
fadeTime += delta
var t:float = fadeTime / fadeDuration
# Get destination alpha type.
var destAlpha:float = 0.0
var srcAlpha:float
if fadeType == FadeType.FADE_IN:
srcAlpha = 1.0
destAlpha = 0.0
elif fadeType == FadeType.FADE_OUT:
srcAlpha = 0.0
destAlpha = 1.0
# Get destination alpha type.
var destAlpha:float = 0.0
var srcAlpha:float
if fadeType == FadeType.FADE_IN:
srcAlpha = 1.0
destAlpha = 0.0
elif fadeType == FadeType.FADE_OUT:
srcAlpha = 0.0
destAlpha = 1.0
# End?
if t >= 1.0:
fadeUpdate.emit(1.0)
var cFade = fadeType
fadeType = FadeType.NONE
$Overlay.color.a = destAlpha
inFade = false
# End?
if t >= 1.0:
fadeUpdate.emit(1.0)
var cFade = fadeType
fadeType = FadeType.NONE
$Overlay.color.a = destAlpha
inFade = false
if cFade == FadeType.FADE_OUT:
fadeOutEnd.emit()
elif cFade == FadeType.FADE_IN:
fadeInEnd.emit()
return
if cFade == FadeType.FADE_OUT:
fadeOutEnd.emit()
elif cFade == FadeType.FADE_IN:
fadeInEnd.emit()
return
# TODO: Use curves
$Overlay.color.a = srcAlpha + (destAlpha - srcAlpha) * t
fadeUpdate.emit(t)
pass
# TODO: Use curves
$Overlay.color.a = srcAlpha + (destAlpha - srcAlpha) * t
fadeUpdate.emit(t)
pass
func fade(
fade:FadeType = FadeType.FADE_IN,
duration:float = 0.4,
color:Color = Color(0, 0, 0, 1),
fade:FadeType = FadeType.FADE_IN,
duration:float = 0.4,
color:Color = Color(0, 0, 0, 1),
):
if inFade:
push_error("Transition: Cannot start a new fade while another is in progress.")
return
if inFade:
push_error("Transition: Cannot start a new fade while another is in progress.")
return
$Overlay.visible = true
$Overlay.color = color
fadeDuration = duration
fadeTime = 0
fadeType = fade
inFade = true
$Overlay.visible = true
$Overlay.color = color
fadeDuration = duration
fadeTime = 0
fadeType = fade
inFade = true
if fade == FadeType.FADE_IN:
fadeInStart.emit()
$Overlay.color.a = 0
elif fade == FadeType.FADE_OUT:
fadeOutStart.emit()
$Overlay.color.a = 1
if fade == FadeType.FADE_IN:
fadeInStart.emit()
$Overlay.color.a = 0
elif fade == FadeType.FADE_OUT:
fadeOutStart.emit()
$Overlay.color.a = 1