This commit is contained in:
2026-03-13 13:27:47 +01:00
parent cec8cedc19
commit 858a0cff91
5 changed files with 119 additions and 92 deletions

View File

@@ -1,35 +1,56 @@
class SCR_VoiceRangeDisplay: SCR_InfoDisplay {
protected TextWidget m_wRangeText;
protected SCR_FadeUIComponent m_FadeComponent;
class SCR_VoiceRangeDisplay: SCR_InfoDisplay{
protected TextWidget m_wRangeText;
protected SCR_FadeUIComponent m_FadeComponent;
protected override event void OnStartDraw(IEntity owner) {
super.OnStartDraw(owner);
protected override event void OnStartDraw(IEntity owner)
{
super.OnStartDraw(owner);
if (!m_wRoot) {
m_wRoot = GetGame().GetWorkspace().CreateWidgets("{52CB3045C167E6D8}UI/layouts/VoiceRange/VoiceRangeDynamicNumber.layout");
if (!m_wRoot) return;
}
if (!m_wRoot)
{
m_wRoot = GetGame().GetWorkspace().CreateWidgets("{52CB3045C167E6D8}UI/layouts/VoiceRange/VoiceRangeDynamicNumber.layout");
if (!m_wRoot){
return;
}
}
m_wRangeText = TextWidget.Cast(m_wRoot.FindAnyWidget("RangeText"));
if (!m_wRangeText) return;
m_wRangeText = TextWidget.Cast(m_wRoot.FindAnyWidget("RangeText"));
if (!m_wRangeText){
return;
}
m_FadeComponent = SCR_FadeUIComponent.Cast(m_wRangeText.FindHandler(SCR_FadeUIComponent));
m_wRangeText.SetVisible(false);
}
void UpdateRangeText(int range) {
if (!m_wRangeText) {
Print("GTG Voice: FEHLER - TextWidget 'RangeText' nicht gefunden! Layout-Pfad falsch?", LogLevel.ERROR);
return;
}
m_FadeComponent = SCR_FadeUIComponent.Cast(m_wRangeText.FindHandler(SCR_FadeUIComponent));
m_wRangeText.SetVisible(false);
}
protected void StartFadeOut() {
if (m_FadeComponent) {
m_FadeComponent.FadeOut(false);
} else if (m_wRangeText) {
m_wRangeText.SetVisible(false);
}
}
void UpdateRangeText(int range)
{
if (!m_wRangeText){
return;
}
m_wRangeText.SetText(range.ToString() + "m");
m_wRangeText.SetVisible(true);
if (m_FadeComponent)
{
m_FadeComponent.FadeIn(true);
}
GetGame().GetCallqueue().Remove(StartFadeOut);
GetGame().GetCallqueue().CallLater(StartFadeOut, 3000, false);
}
protected void StartFadeOut()
{
if (m_FadeComponent)
{
m_FadeComponent.FadeOut(false);
}
else if (m_wRangeText)
{
m_wRangeText.SetVisible(false);
}
}
}