285 lines
7.1 KiB
Lua
285 lines
7.1 KiB
Lua
LUI.UIMarqueeText = InheritFrom( LUI.UIElement )
|
|
LUI.UIMarqueeText.build = function ( f1_arg0, f1_arg1 )
|
|
if not f1_arg1 then
|
|
f1_arg1 = {}
|
|
end
|
|
local self = LUI.UIMarqueeText.new( f1_arg1.defaultAnimationState )
|
|
if f1_arg1.textHeight then
|
|
LUI.UIMarqueeText.SetTextHeight( self, f1_arg1.textHeight )
|
|
end
|
|
if f1_arg1.useTextWrapping then
|
|
LUI.UIMarqueeText.SetUseTextWrapping( self, f1_arg1.useTextWrapping )
|
|
end
|
|
if f1_arg1.scrollSpeed then
|
|
LUI.UIMarqueeText.SetSpeed( self, f1_arg1.scrollSpeed )
|
|
end
|
|
return self
|
|
end
|
|
|
|
LUI.UIMarqueeText.SetColor = function ( f2_arg0, f2_arg1, f2_arg2, f2_arg3 )
|
|
f2_arg0:registerAnimationState( "default", {
|
|
red = f2_arg1,
|
|
green = f2_arg2,
|
|
blue = f2_arg3,
|
|
alpha = 1
|
|
} )
|
|
f2_arg0:animateToState( "default" )
|
|
LUI.UIMarqueeText.RestartScroll( f2_arg0 )
|
|
end
|
|
|
|
LUI.UIMarqueeText.new = function ( f3_arg0 )
|
|
local self = LUI.UIElement.new( f3_arg0 )
|
|
self:setClass( LUI.UIMarqueeText )
|
|
self:setUseStencil( true )
|
|
local f3_local1 = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 0,
|
|
right = 0
|
|
}
|
|
local f3_local2
|
|
if f3_arg0 then
|
|
f3_local2 = f3_arg0.font
|
|
if not f3_local2 then
|
|
|
|
else
|
|
f3_local1.font = f3_local2
|
|
f3_local1.red = 1
|
|
f3_local1.green = 1
|
|
f3_local1.blue = 1
|
|
f3_local1.alpha = 1
|
|
f3_local2 = LUI.UIText.new( f3_local1 )
|
|
self.text = f3_local2
|
|
self:addElement( f3_local2 )
|
|
self.text:registerAnimationState( "default", f3_local1 )
|
|
self.text:animateToState( "default" )
|
|
self.text:registerAnimationState( "start", f3_local1 )
|
|
self.text:registerAnimationState( "alphaOut", {
|
|
alpha = 0
|
|
} )
|
|
self.text:registerEventHandler( "transition_complete_start", LUI.UIMarqueeText.HandleStartScroll )
|
|
self.text:animateToState( "start", 1 )
|
|
self.text.scrollSpeed = 90
|
|
return self
|
|
end
|
|
end
|
|
f3_local2 = CoD.TextSettings.NormalFont.Font
|
|
end
|
|
|
|
LUI.UIMarqueeText.RestartScroll = function ( f4_arg0 )
|
|
f4_arg0.text:animateToState( "start", 1 )
|
|
end
|
|
|
|
LUI.UIMarqueeText.SetUseTextWrapping = function ( f5_arg0, f5_arg1 )
|
|
f5_arg0.text.useTextWrapping = f5_arg1
|
|
LUI.UIMarqueeText.RestartScroll( f5_arg0 )
|
|
end
|
|
|
|
LUI.UIMarqueeText.SetTextHeight = function ( f6_arg0, f6_arg1 )
|
|
local f6_local0 = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = f6_arg1,
|
|
left = 0,
|
|
right = 0
|
|
}
|
|
f6_arg0.text.textHeight = f6_arg1
|
|
f6_arg0.text:registerAnimationState( "default", f6_local0 )
|
|
f6_arg0.text:registerAnimationState( "start", f6_local0 )
|
|
LUI.UIMarqueeText.RestartScroll( f6_arg0 )
|
|
end
|
|
|
|
LUI.UIMarqueeText.SetSpeed = function ( f7_arg0, f7_arg1 )
|
|
f7_arg0.text.scrollSpeed = f7_arg1
|
|
end
|
|
|
|
LUI.UIMarqueeText.HandleStartScroll = function ( f8_arg0 )
|
|
local f8_local0 = f8_arg0:getParent()
|
|
local f8_local1, f8_local2, f8_local3, f8_local4 = f8_local0:getCurrentGlobalRect()
|
|
local f8_local5 = f8_arg0:getCurrentGlobalRect()
|
|
local f8_local6 = f8_local0:getCurrentAlignment()
|
|
local f8_local7 = LUI.Alignment.None
|
|
if f8_arg0.useTextWrapping then
|
|
if f8_local6 == LUI.Alignment.None then
|
|
local f8_local8 = LUI.Alignment.Left
|
|
end
|
|
f8_local7 = f8_local8 or f8_local6
|
|
end
|
|
f8_arg0:registerAnimationState( "setup", {
|
|
alignment = f8_local7
|
|
} )
|
|
f8_arg0:animateToState( "setup" )
|
|
if f8_local1 and f8_local5 then
|
|
local f8_local9, f8_local10 = f8_arg0:getElementTextDims()
|
|
local f8_local11 = f8_local0:getCurrentFont()
|
|
local f8_local12, f8_local13, f8_local14, f8_local15 = f8_local0:getCurrentRGBA()
|
|
local f8_local16 = nil
|
|
local f8_local17 = false
|
|
local f8_local18 = {
|
|
red = f8_local12,
|
|
green = f8_local13,
|
|
blue = f8_local14,
|
|
alpha = f8_local15
|
|
}
|
|
local f8_local19 = 0.01
|
|
if f8_local3 - f8_local1 + f8_local19 < f8_local9 and not f8_arg0.textHeight then
|
|
f8_local16 = (f8_local9 - f8_local3 - f8_local1) / f8_arg0.scrollSpeed * 1000
|
|
f8_local17 = true
|
|
f8_local18.alignment = LUI.Alignment.None
|
|
f8_arg0:registerAnimationState( "alphaIn", f8_local18 )
|
|
f8_arg0:registerAnimationState( "one", {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
top = 0,
|
|
bottom = f8_local10,
|
|
left = 0,
|
|
right = f8_local9,
|
|
font = f8_local11
|
|
} )
|
|
f8_arg0:registerAnimationState( "two", {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = false,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = f8_local10,
|
|
left = -f8_local9,
|
|
right = 0,
|
|
font = f8_local11
|
|
} )
|
|
local f8_local20 = MBh.AnimateLoop( {
|
|
{
|
|
"alphaIn",
|
|
0
|
|
},
|
|
{
|
|
"one",
|
|
0
|
|
},
|
|
{
|
|
"one",
|
|
500
|
|
},
|
|
{
|
|
"two",
|
|
f8_local16
|
|
},
|
|
{
|
|
"two",
|
|
500
|
|
},
|
|
{
|
|
"alphaOut",
|
|
250
|
|
},
|
|
{
|
|
"one",
|
|
0
|
|
},
|
|
{
|
|
"alphaIn",
|
|
250
|
|
}
|
|
} )
|
|
f8_local20( f8_arg0 )
|
|
elseif f8_local4 - f8_local2 + f8_local19 < f8_local10 and f8_arg0.textHeight then
|
|
local f8_local21 = f8_local10 - f8_local4 - f8_local2
|
|
local f8_local22 = f8_local10 / f8_arg0.textHeight
|
|
f8_local16 = f8_local21 / f8_arg0.scrollSpeed * 1000
|
|
f8_local17 = true
|
|
local f8_local20
|
|
if f8_local6 == LUI.Alignment.None then
|
|
f8_local20 = LUI.Alignment.Center
|
|
if not f8_local20 then
|
|
|
|
else
|
|
f8_local18.alignment = f8_local20
|
|
f8_arg0:registerAnimationState( "alphaIn", f8_local18 )
|
|
f8_local20 = {
|
|
{
|
|
"alphaOut",
|
|
0
|
|
},
|
|
{
|
|
"line_0",
|
|
0
|
|
},
|
|
{
|
|
"alphaIn",
|
|
250
|
|
}
|
|
}
|
|
for f8_local23 = 0, f8_local22 - math.floor( (f8_local4 - f8_local2) / f8_arg0.textHeight ), 1 do
|
|
local f8_local26 = "line_" .. f8_local23
|
|
f8_arg0:registerAnimationState( f8_local26, {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = -f8_local23 * f8_arg0.textHeight,
|
|
bottom = (1 - f8_local23) * f8_arg0.textHeight,
|
|
left = 0,
|
|
right = 0,
|
|
font = f8_local11
|
|
} )
|
|
table.insert( f8_local20, {
|
|
f8_local26,
|
|
f8_arg0.textHeight / f8_arg0.scrollSpeed * 1000,
|
|
true,
|
|
true
|
|
} )
|
|
table.insert( f8_local20, {
|
|
f8_local26,
|
|
2000
|
|
} )
|
|
end
|
|
table.insert( f8_local20, {
|
|
"alphaOut",
|
|
250
|
|
} )
|
|
table.insert( f8_local20, {
|
|
"line_0",
|
|
0
|
|
} )
|
|
local f8_local23 = MBh.AnimateLoop( f8_local20 )
|
|
f8_local23( f8_arg0 )
|
|
end
|
|
end
|
|
f8_local20 = f8_local6
|
|
end
|
|
if not f8_local17 then
|
|
f8_local18.alignment = f8_local6
|
|
f8_arg0:registerEventHandler( LUI.FormatAnimStateFinishEvent( "alphaIn" ), nil )
|
|
f8_arg0:registerAnimationState( "alphaIn", f8_local18 )
|
|
f8_arg0:animateToState( "alphaIn", 0 )
|
|
end
|
|
else
|
|
f8_arg0:animateToState( "alphaOut" )
|
|
f8_arg0:animateToState( "start", 1 )
|
|
end
|
|
end
|
|
|
|
LUI.UIMarqueeText.setText = function ( f9_arg0, f9_arg1 )
|
|
f9_arg0.text:setTextInC( f9_arg1 )
|
|
if f9_arg0.text.currText ~= f9_arg1 then
|
|
LUI.UIMarqueeText.RestartScroll( f9_arg0 )
|
|
end
|
|
f9_arg0.text.currText = f9_arg1
|
|
end
|
|
|
|
LUI.UIMarqueeText.setTextStyle = function ( f10_arg0, f10_arg1 )
|
|
f10_arg0.text.m_textStyle = f10_arg1
|
|
end
|
|
|
|
LUI.UIMarqueeText.id = "LUIMarqueeText"
|
|
LUI.MenuBuilder.registerType( "UIMarqueeText", LUI.UIMarqueeText.build )
|