📄 bladelistview.luac.lua
字号:
-- Decompiled using luadec 1.0 by sztupy (http://winmo.sztupy.hu)
-- Command line was: -l2 ;;;;;;9;1,42;7,28,35,135;;;; 32af2be9_manila.luac
require("common")
require("Animation")
BladePositionEaseFunction = Interpolate_EaseInQuad
BladePositionDuration = 6
BladeOpacityEaseFunction = Interpolate_EaseInQuad
BladeOpacityDuration = 6
ListScrollAnimationDuration = 6
BladeList = class()
BladeList.__init = function(l_1_0, l_1_1, l_1_2, l_1_3, l_1_4, l_1_5, l_1_6, l_1_7, l_1_8, l_1_9)
l_1_0.ListContainer = l_1_2
l_1_0.ListView = l_1_1
l_1_0.ScrubBar = l_1_3
if l_1_9 == nil then
l_1_0.hitBox = l_1_3
else
l_1_0.hitBox = l_1_9
end
l_1_0.ScrubBarTopBorderSize = l_1_4
l_1_0.ScrubBarBottomBorderSize = l_1_5
l_1_0.SetBladeData = l_1_6
l_1_0.BladeContainer = l_1_8
l_1_0.Blade = l_1_7
l_1_0.IsScrolling = false
l_1_0.LastMouseY = 0
l_1_0.ConnectedEvents = false
l_1_0:ConnectEvents()
end
BladeList.ConnectEvents = function(l_2_0)
trace("BladeList - ConnectEvents")
if l_2_0.ConnectedEvents == false then
trace("BladeList - Connecting to events")
l_2_0.ConnectedEvents = true
if l_2_0.ListView ~= nil then
l_2_0.ListView.onUpdate:connect(l_2_0.OnUpdate, l_2_0)
if l_2_0.ListView:HasGenerator() then
l_2_0.ListView:GetGenerator().SelectedIndexChanged:connect(l_2_0.OnSelectedIndexChanged, l_2_0)
l_2_0.ListView:GetGenerator().ItemsAdded:connect(l_2_0.OnItemsAdded, l_2_0)
end
end
if l_2_0.hitBox ~= nil then
l_2_0.hitBox.onPress:connect(l_2_0.HandleScrubBarMousePress, l_2_0)
l_2_0.hitBox.onRelease:connect(l_2_0.HandleScrubBarMouseRelease, l_2_0)
l_2_0.hitBox.onReleaseOutside:connect(l_2_0.HandleScrubBarMouseRelease, l_2_0)
l_2_0.hitBox.onMouseMove:connect(l_2_0.HandleScrubBarMouseMove, l_2_0)
end
else
trace("BladeList - Already connected to events!")
end
end
BladeList.DisconnectEvents = function(l_3_0)
if l_3_0.ConnectedEvents == true then
l_3_0.ConnectedEvents = false
if l_3_0.ListView ~= nil then
l_3_0.ListView.onUpdate:disconnect(l_3_0.OnUpdate, l_3_0)
if l_3_0.ListView:HasGenerator() then
l_3_0.ListView:GetGenerator().SelectedIndexChanged:disconnect(l_3_0.OnSelectedIndexChanged, l_3_0)
l_3_0.ListView:GetGenerator().ItemsAdded:disconnect(l_3_0.OnItemsAdded, l_3_0)
end
end
if l_3_0.hitBox ~= nil then
l_3_0.hitBox.onPress:disconnect(l_3_0.HandleScrubBarMousePress, l_3_0)
l_3_0.hitBox.onRelease:disconnect(l_3_0.HandleScrubBarMouseRelease, l_3_0)
l_3_0.hitBox.onReleaseOutside:disconnect(l_3_0.HandleScrubBarMouseRelease, l_3_0)
l_3_0.hitBox.onMouseMove:disconnect(l_3_0.HandleScrubBarMouseMove, l_3_0)
end
end
end
BladeList.GetIndexAtScrubBar = function(l_4_0)
return l_4_0.ListView:GetIndexAtPoint(0, l_4_0.ScrubBar.Position.y - l_4_0.ScrubBarTopBorderSize - l_4_0.ScrubBar.Size.height / 2)
end
BladeList.HandleScrubBarMousePress = function(l_5_0, l_5_1, l_5_2)
trace("BladeList:HandleScrubBarMousePress")
_application.TouchFlo.VerticalEnabled = false
l_5_0.IsScrolling = true
l_5_0.LastMouseY = l_5_1._ymouse
SetBladeData(l_5_0:GetIndexAtScrubBar())
if _application.Orientation == ScreenOrientation_Landscape then
l_5_0.BladeContainer.Position:Interpolate(Vector3(340, BladeContainer.Position.y, BladeContainer.Position.z), BladePositionDuration, 0, BladePositionEaseFunction, nil)
else
l_5_0.BladeContainer.Position:Interpolate(Vector3(20, BladeContainer.Position.y, BladeContainer.Position.z), BladePositionDuration, 0, BladePositionEaseFunction, nil)
end
l_5_0.BladeContainer.Opacity:Interpolate(95, BladeOpacityDuration, 0, BladeOpacityEaseFunction, nil)
l_5_2.value = true
end
BladeList.HandleScrubBarMouseRelease = function(l_6_0, l_6_1, l_6_2)
trace("BladeList:HandleScrubBarMouseRelease")
_application.TouchFlo.VerticalEnabled = true
l_6_0.IsScrolling = false
local l_6_3 = l_6_0:GetIndexAtScrubBar()
trace("GetIndexAtScrubBar=" .. l_6_3)
trace("self.ListView:GetGenerator().SelectedIndex=" .. l_6_0.ListView:GetGenerator().SelectedIndex)
if l_6_3 ~= -1 then
if l_6_0.ListView:GetGenerator().SelectedIndex == l_6_3 then
l_6_0:OnSelectedIndexChanged(l_6_3, l_6_3)
else
l_6_0.ListView:GetGenerator().SelectedIndex = l_6_3
end
else
l_6_0.ListView:GetGenerator().SelectedIndex = 0
end
l_6_2.value = true
end
BladeList.HandleScrubBarMouseMove = function(l_7_0, l_7_1)
if l_7_0.IsScrolling == true then
if (l_7_1._ymouse < -l_7_0.ListContainer.Position.y + l_7_0.ScrubBarTopBorderSize) or
l_7_1._ymouse > l_7_0.ListView.Viewport.y + l_7_0.ScrubBarBottomBorderSize - l_7_0.ListContainer.Position.y then
return
end
local l_7_2 = l_7_1._ymouse - l_7_0.LastMouseY
l_7_0.LastMouseY = l_7_1._ymouse
l_7_0.ScrubBar.Position.y = l_7_0.ScrubBar.Position.y - (l_7_2)
local l_7_3 = l_7_0.ListView:GetGenerator():GetCount()
l_7_3 = l_7_3 * ThumbnailList:GetLayout().ItemSize.y
if l_7_0.ScrubBar.Position.y > l_7_0.ScrubBarTopBorderSize then
l_7_0.ScrubBar.Position.y = l_7_0.ScrubBarTopBorderSize
else
if l_7_3 < l_7_0.ListView.Viewport.y then
if l_7_0.ScrubBar.Position.y < -(l_7_0.ListView:GetGenerator():GetCount() - 1) * l_7_0.ListView:GetLayout().ItemSize.y + l_7_0.ScrubBarBottomBorderSize then
l_7_0.ScrubBar.Position.y = -(l_7_0.ListView:GetGenerator():GetCount() - 1) * l_7_0.ListView:GetLayout().ItemSize.y + l_7_0.ScrubBarBottomBorderSize
end
elseif l_7_0.ScrubBar.Position.y < l_7_0.ScrubBar.Size.height - (l_7_0.ListView.Viewport.y + l_7_0.ScrubBarBottomBorderSize) then
l_7_0.ScrubBar.Position.y = l_7_0.ScrubBar.Size.height - (l_7_0.ListView.Viewport.y + l_7_0.ScrubBarBottomBorderSize)
end
end
l_7_0.hitBox.Position.y = l_7_0.ScrubBar.Position.y
l_7_0.Blade.Position.y = l_7_0.ScrubBar.Position.y + l_7_0.ListContainer.Position.y + 8
if l_7_0.ListView.Viewport.y < l_7_3 then
local x = (-l_7_0.ScrubBar.Position.y + l_7_0.ScrubBarTopBorderSize)
x = x / (l_7_0.ListView.Viewport.y + l_7_0.ScrubBarTopBorderSize + l_7_0.ScrubBarBottomBorderSize - l_7_0.ScrubBar.Size.height)
l_7_0.ListView.VerticalScroll = x * (l_7_3 - l_7_0.ListView.Viewport.y)
end
SetBladeData(l_7_0:GetIndexAtScrubBar())
end
end
BladeList.OnSelectedIndexChanged = function(l_8_0, l_8_1, l_8_2)
trace("BladeList:OnSelectedIndexChanged")
if l_8_2 == -1 then
return
end
local l_8_3 = nil
if l_8_0.ListView:GetGenerator():GetCount() > 1 then
l_8_3 = l_8_2 / (l_8_0.ListView:GetGenerator():GetCount() - 1)
else
l_8_3 = 1
end
local l_8_4 = l_8_0.ListView:GetGenerator():GetCount()
l_8_4 = l_8_4 * l_8_0.ListView:GetLayout().ItemSize.y
local l_8_5 = nil
if l_8_0.ListView.Viewport.y < l_8_4 then
if l_8_3 == 0 then
l_8_5 = l_8_0.ScrubBarTopBorderSize
else
l_8_5 = l_8_0.ScrubBarTopBorderSize - l_8_3 * (l_8_0.ListView.Viewport.y + l_8_0.ScrubBarTopBorderSize + l_8_0.ScrubBarBottomBorderSize - l_8_0.ScrubBar.Size.height)
end
else
l_8_5 = l_8_0.ScrubBarTopBorderSize - l_8_2 * l_8_0.ListView:GetLayout().ItemSize.y
end
l_8_0.BladeContainer.Position:Interpolate(Vector3(480, BladeContainer.Position.y, BladeContainer.Position.z), BladePositionDuration, 0, BladePositionEaseFunction, nil)
l_8_0.BladeContainer.Opacity:Interpolate(0, BladeOpacityDuration, 0, BladeOpacityEaseFunction, nil)
l_8_0.Blade.Position:Interpolate(Vector3(Blade.Position.x, l_8_5 + ThumbnailListContainer.Position.y + 8, Blade.Position.z), BladePositionDuration, 0, BladePositionEaseFunction, nil)
l_8_0.ScrubBar.Position:Interpolate(Vector3(ScrubBar.Position.x, l_8_5, ScrubBar.Position.z), BladePositionDuration, 0, BladePositionEaseFunction, nil)
l_8_0.hitBox.Position.y = l_8_5
local l_8_6 = 0
if l_8_0.ListView.Viewport.y < l_8_4 then
l_8_6 = l_8_3 * (l_8_4 - l_8_0.ListView.Viewport.y)
end
l_8_0.ListView.onUpdate:connect(l_8_0.OnUpdate, l_8_0)
l_8_0.ListScrollAnimation = AnimateVerticalScroll(l_8_0.ListView, l_8_6, ListScrollAnimationDuration, EaseIn)
end
BladeList.OnUpdate = function(l_9_0)
if l_9_0.ListScrollAnimation ~= nil then
if l_9_0.ListScrollAnimation:StepAnimation() then
l_9_0.ListScrollAnimation = nil
l_9_0.ListView.onUpdate:disconnect(l_9_0.OnUpdate, l_9_0)
end
else
l_9_0.ListView.onUpdate:disconnect(l_9_0.OnUpdate, l_9_0)
end
end
BladeList.OnItemsAdded = function(l_10_0, l_10_1, l_10_2)
l_10_0.ListView:FocusItems()
end
BladeList.OnFocusChanged = function(l_11_0, l_11_1, l_11_2, l_11_3)
if l_11_2 == l_11_0.ListView then
l_11_3.value = l_11_0.ListView:FocusItems()
else
l_11_3.value = false
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -