Clients/Client2018/content/internal/AppShell/Modules/Shell/BaseTile.lua

137 lines
3.3 KiB
Lua

--[[
// BaseTile.lua
// Created by Kip Turner
// Copyright Roblox 2015
]]
local CoreGui = game:GetService("CoreGui")
local GuiRoot = CoreGui:FindFirstChild("RobloxGui")
local Modules = GuiRoot:FindFirstChild("Modules")
local ShellModules = Modules:FindFirstChild("Shell")
local Utility = require(ShellModules:FindFirstChild('Utility'))
local SoundManager = require(ShellModules:FindFirstChild('SoundManager'))
local AssetManager = require(ShellModules:FindFirstChild('AssetManager'))
local PopupText = require(ShellModules:FindFirstChild('PopupText'))
local Analytics = require(ShellModules:FindFirstChild('Analytics'))
local ACTIVE_AVATAR_BACKGROUND_COLOR = Color3.new(45/255, 96/255, 128/255)
local INACTIVE_AVATAR_BACKGROUND_COLOR = Color3.new(39/255, 69/255, 82/255) --Color3.new(106/255, 120/255, 129/255)
local function createBaseTileContainer()
local this = {}
this.focused = false
this.active = false
local avatarItemContainer = Utility.Create'ImageButton'
{
Name = 'AvatarItemContainer';
Size = UDim2.new(0,220,0,220);
BorderSizePixel = 0;
BackgroundTransparency = 0;
BackgroundColor3 = this.active and ACTIVE_AVATAR_BACKGROUND_COLOR or INACTIVE_AVATAR_BACKGROUND_COLOR;
AutoButtonColor = false;
ClipsDescendants = true;
ZIndex = 2;
AssetManager.CreateShadow(1);
SoundManager:CreateSound('MoveSelection');
}
local myPopText = PopupText(avatarItemContainer, '')
myPopText:SetZIndex(3)
local avatarImage = Utility.Create'ImageLabel'
{
Name = "AvatarImage";
Size = UDim2.new(1, 0, 1, 0);
Position = UDim2.new(0, 0, 0, 0);
BackgroundTransparency = 1;
ZIndex = 2;
Parent = avatarItemContainer;
}
local equippedCheckmark = Utility.Create'ImageLabel'
{
Name = "EquippedCheckmark";
Size = UDim2.new(1, 0, 1, 0);
Position = UDim2.new(0, 0, 0, 0);
BackgroundTransparency = 1;
ZIndex = 3;
Visible = false;
Image = 'rbxasset://textures/ui/Shell/Icons/EquippedOverlay.png';
Parent = avatarItemContainer;
}
this.AvatarItemContainer = avatarItemContainer
this.AvatarImage = avatarImage
this.EquippedCheckmark = equippedCheckmark
local function colorizeImage(newColor, duration)
duration = duration or 0.2
Utility.PropertyTweener(avatarImage, 'ImageColor3', avatarImage.ImageColor3.r, newColor, duration,
function(...) local scalar = Utility.EaseOutQuad(...) return Color3.new(scalar, scalar, scalar) end, true)
end
function this:UpdateEquipButton()
end
function this:ColorizeImage(...)
colorizeImage(...)
end
function this:SetPopupText(newText)
myPopText:SetText(newText)
end
function this:SetImage(imgUrl)
avatarImage.Image = imgUrl
end
function this:GetGuiObject()
return avatarItemContainer
end
function this:GetAnalyticsInfo()
return {[Analytics.WidgetNames('WidgetId')] = Analytics.WidgetNames('BaseTileId')}
end
function this:GetPackageInfo()
end
function this:OnClick()
end
function this:SetActive(isActive)
self.active = isActive
avatarItemContainer.BackgroundColor3 = self.active and ACTIVE_AVATAR_BACKGROUND_COLOR or INACTIVE_AVATAR_BACKGROUND_COLOR;
end
function this:Select()
end
function this:Show()
end
function this:Hide()
end
function this:Focus()
self.focused = true
end
function this:RemoveFocus()
self.focused = false
end
return this
end
return createBaseTileContainer