137 lines
3.3 KiB
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
|