forked from rojo-rbx/rojo
Stylua formatting (#785)
Uses Stylua to format all existing Lua files, and adds a CI check in `lint` to pin this improvement. Excludes formatting dependencies, of course.
This commit is contained in:
@@ -23,12 +23,10 @@ end
|
||||
|
||||
function Checkbox:didUpdate(lastProps)
|
||||
if lastProps.active ~= self.props.active then
|
||||
self.motor:setGoal(
|
||||
Flipper.Spring.new(self.props.active and 1 or 0, {
|
||||
frequency = 6,
|
||||
dampingRatio = 1.1,
|
||||
})
|
||||
)
|
||||
self.motor:setGoal(Flipper.Spring.new(self.props.active and 1 or 0, {
|
||||
frequency = 6,
|
||||
dampingRatio = 1.1,
|
||||
}))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -52,13 +50,14 @@ function Checkbox:render()
|
||||
BackgroundTransparency = 1,
|
||||
|
||||
[Roact.Event.Activated] = function()
|
||||
if self.props.locked then return end
|
||||
if self.props.locked then
|
||||
return
|
||||
end
|
||||
self.props.onClick()
|
||||
end,
|
||||
}, {
|
||||
StateTip = e(Tooltip.Trigger, {
|
||||
text =
|
||||
(if self.props.locked then "[LOCKED] " else "")
|
||||
text = (if self.props.locked then "[LOCKED] " else "")
|
||||
.. (if self.props.active then "Enabled" else "Disabled"),
|
||||
}),
|
||||
|
||||
@@ -89,7 +88,9 @@ function Checkbox:render()
|
||||
size = UDim2.new(1, 0, 1, 0),
|
||||
}, {
|
||||
Icon = e("ImageLabel", {
|
||||
Image = if self.props.locked then Assets.Images.Checkbox.Locked else Assets.Images.Checkbox.Inactive,
|
||||
Image = if self.props.locked
|
||||
then Assets.Images.Checkbox.Locked
|
||||
else Assets.Images.Checkbox.Inactive,
|
||||
ImageColor3 = theme.Inactive.IconColor,
|
||||
ImageTransparency = self.props.transparency,
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ function CodeLabel:didMount()
|
||||
end
|
||||
|
||||
function CodeLabel:didUpdate()
|
||||
self:updateHighlights()
|
||||
self:updateHighlights()
|
||||
end
|
||||
|
||||
function CodeLabel:updateHighlights()
|
||||
|
||||
@@ -36,12 +36,10 @@ function Dropdown:didUpdate(prevProps)
|
||||
})
|
||||
end
|
||||
|
||||
self.openMotor:setGoal(
|
||||
Flipper.Spring.new(self.state.open and 1 or 0, {
|
||||
frequency = 6,
|
||||
dampingRatio = 1.1,
|
||||
})
|
||||
)
|
||||
self.openMotor:setGoal(Flipper.Spring.new(self.state.open and 1 or 0, {
|
||||
frequency = 6,
|
||||
dampingRatio = 1.1,
|
||||
}))
|
||||
end
|
||||
|
||||
function Dropdown:render()
|
||||
@@ -52,10 +50,7 @@ function Dropdown:render()
|
||||
local width = -1
|
||||
for i, option in self.props.options do
|
||||
local text = tostring(option or "")
|
||||
local textSize = TextService:GetTextSize(
|
||||
text, 15, Enum.Font.GothamMedium,
|
||||
Vector2.new(math.huge, 20)
|
||||
)
|
||||
local textSize = TextService:GetTextSize(text, 15, Enum.Font.GothamMedium, Vector2.new(math.huge, 20))
|
||||
if textSize.X > width then
|
||||
width = textSize.X
|
||||
end
|
||||
@@ -74,7 +69,9 @@ function Dropdown:render()
|
||||
Font = Enum.Font.GothamMedium,
|
||||
|
||||
[Roact.Event.Activated] = function()
|
||||
if self.props.locked then return end
|
||||
if self.props.locked then
|
||||
return
|
||||
end
|
||||
self:setState({
|
||||
open = false,
|
||||
})
|
||||
@@ -88,7 +85,7 @@ function Dropdown:render()
|
||||
end
|
||||
|
||||
return e("ImageButton", {
|
||||
Size = UDim2.new(0, width+50, 0, 28),
|
||||
Size = UDim2.new(0, width + 50, 0, 28),
|
||||
Position = self.props.position,
|
||||
AnchorPoint = self.props.anchorPoint,
|
||||
LayoutOrder = self.props.layoutOrder,
|
||||
@@ -96,7 +93,9 @@ function Dropdown:render()
|
||||
BackgroundTransparency = 1,
|
||||
|
||||
[Roact.Event.Activated] = function()
|
||||
if self.props.locked then return end
|
||||
if self.props.locked then
|
||||
return
|
||||
end
|
||||
self:setState({
|
||||
open = not self.state.open,
|
||||
})
|
||||
@@ -136,40 +135,42 @@ function Dropdown:render()
|
||||
TextTransparency = self.props.transparency,
|
||||
}),
|
||||
}),
|
||||
Options = if self.state.open then e(SlicedImage, {
|
||||
slice = Assets.Slices.RoundedBackground,
|
||||
color = theme.BackgroundColor,
|
||||
position = UDim2.new(1, 0, 1, 3),
|
||||
size = self.openBinding:map(function(a)
|
||||
return UDim2.new(1, 0, a*math.min(3, #self.props.options), 0)
|
||||
end),
|
||||
anchorPoint = Vector2.new(1, 0),
|
||||
}, {
|
||||
Border = e(SlicedImage, {
|
||||
slice = Assets.Slices.RoundedBorder,
|
||||
color = theme.BorderColor,
|
||||
transparency = self.props.transparency,
|
||||
size = UDim2.new(1, 0, 1, 0),
|
||||
}),
|
||||
ScrollingFrame = e(ScrollingFrame, {
|
||||
size = UDim2.new(1, -4, 1, -4),
|
||||
position = UDim2.new(0, 2, 0, 2),
|
||||
transparency = self.props.transparency,
|
||||
contentSize = self.contentSize,
|
||||
Options = if self.state.open
|
||||
then e(SlicedImage, {
|
||||
slice = Assets.Slices.RoundedBackground,
|
||||
color = theme.BackgroundColor,
|
||||
position = UDim2.new(1, 0, 1, 3),
|
||||
size = self.openBinding:map(function(a)
|
||||
return UDim2.new(1, 0, a * math.min(3, #self.props.options), 0)
|
||||
end),
|
||||
anchorPoint = Vector2.new(1, 0),
|
||||
}, {
|
||||
Layout = e("UIListLayout", {
|
||||
VerticalAlignment = Enum.VerticalAlignment.Top,
|
||||
FillDirection = Enum.FillDirection.Vertical,
|
||||
SortOrder = Enum.SortOrder.LayoutOrder,
|
||||
Padding = UDim.new(0, 0),
|
||||
|
||||
[Roact.Change.AbsoluteContentSize] = function(object)
|
||||
self.setContentSize(object.AbsoluteContentSize)
|
||||
end,
|
||||
Border = e(SlicedImage, {
|
||||
slice = Assets.Slices.RoundedBorder,
|
||||
color = theme.BorderColor,
|
||||
transparency = self.props.transparency,
|
||||
size = UDim2.new(1, 0, 1, 0),
|
||||
}),
|
||||
Roact.createFragment(optionButtons),
|
||||
}),
|
||||
}) else nil,
|
||||
ScrollingFrame = e(ScrollingFrame, {
|
||||
size = UDim2.new(1, -4, 1, -4),
|
||||
position = UDim2.new(0, 2, 0, 2),
|
||||
transparency = self.props.transparency,
|
||||
contentSize = self.contentSize,
|
||||
}, {
|
||||
Layout = e("UIListLayout", {
|
||||
VerticalAlignment = Enum.VerticalAlignment.Top,
|
||||
FillDirection = Enum.FillDirection.Vertical,
|
||||
SortOrder = Enum.SortOrder.LayoutOrder,
|
||||
Padding = UDim.new(0, 0),
|
||||
|
||||
[Roact.Change.AbsoluteContentSize] = function(object)
|
||||
self.setContentSize(object.AbsoluteContentSize)
|
||||
end,
|
||||
}),
|
||||
Roact.createFragment(optionButtons),
|
||||
}),
|
||||
})
|
||||
else nil,
|
||||
})
|
||||
end)
|
||||
end
|
||||
|
||||
@@ -38,15 +38,11 @@ function IconButton:render()
|
||||
[Roact.Event.Activated] = self.props.onClick,
|
||||
|
||||
[Roact.Event.MouseEnter] = function()
|
||||
self.motor:setGoal(
|
||||
Flipper.Spring.new(1, HOVER_SPRING_PROPS)
|
||||
)
|
||||
self.motor:setGoal(Flipper.Spring.new(1, HOVER_SPRING_PROPS))
|
||||
end,
|
||||
|
||||
[Roact.Event.MouseLeave] = function()
|
||||
self.motor:setGoal(
|
||||
Flipper.Spring.new(0, HOVER_SPRING_PROPS)
|
||||
)
|
||||
self.motor:setGoal(Flipper.Spring.new(0, HOVER_SPRING_PROPS))
|
||||
end,
|
||||
}, {
|
||||
Icon = e("ImageLabel", {
|
||||
|
||||
@@ -42,7 +42,6 @@ local function DisplayValue(props)
|
||||
Position = UDim2.new(0, 25, 0, 0),
|
||||
}),
|
||||
})
|
||||
|
||||
elseif t == "table" then
|
||||
-- Showing a memory address for tables is useless, so we want to show the best we can
|
||||
local textRepresentation = nil
|
||||
@@ -62,10 +61,10 @@ local function DisplayValue(props)
|
||||
|
||||
-- Wrap strings in quotes
|
||||
if type(k) == "string" then
|
||||
k = "\"" .. k .. "\""
|
||||
k = '"' .. k .. '"'
|
||||
end
|
||||
if type(v) == "string" then
|
||||
v = "\"" .. v .. "\""
|
||||
v = '"' .. v .. '"'
|
||||
end
|
||||
|
||||
out[i] = string.format("[%s] = %s", tostring(k), tostring(v))
|
||||
|
||||
@@ -43,9 +43,14 @@ end
|
||||
function PatchVisualizer:render()
|
||||
local patchTree = self.props.patchTree
|
||||
if patchTree == nil and self.props.patch ~= nil then
|
||||
patchTree = PatchTree.build(self.props.patch, self.props.instanceMap, self.props.changeListHeaders or { "Property", "Current", "Incoming" })
|
||||
patchTree = PatchTree.build(
|
||||
self.props.patch,
|
||||
self.props.instanceMap,
|
||||
self.props.changeListHeaders or { "Property", "Current", "Incoming" }
|
||||
)
|
||||
if self.props.unappliedPatch then
|
||||
patchTree = PatchTree.updateMetadata(patchTree, self.props.patch, self.props.instanceMap, self.props.unappliedPatch)
|
||||
patchTree =
|
||||
PatchTree.updateMetadata(patchTree, self.props.patch, self.props.instanceMap, self.props.unappliedPatch)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -10,11 +10,15 @@ local StudioPluginContext = require(script.Parent.StudioPluginContext)
|
||||
|
||||
local e = Roact.createElement
|
||||
|
||||
local StudioPluginAction = Roact.Component:extend("StudioPluginAction")
|
||||
local StudioPluginAction = Roact.Component:extend("StudioPluginAction")
|
||||
|
||||
function StudioPluginAction:init()
|
||||
self.pluginAction = self.props.plugin:CreatePluginAction(
|
||||
self.props.name, self.props.title, self.props.description, self.props.icon, self.props.bindable
|
||||
self.props.name,
|
||||
self.props.title,
|
||||
self.props.description,
|
||||
self.props.icon,
|
||||
self.props.bindable
|
||||
)
|
||||
|
||||
self.pluginAction.Triggered:Connect(self.props.onTriggered)
|
||||
@@ -31,9 +35,12 @@ end
|
||||
local function StudioPluginActionWrapper(props)
|
||||
return e(StudioPluginContext.Consumer, {
|
||||
render = function(plugin)
|
||||
return e(StudioPluginAction, Dictionary.merge(props, {
|
||||
plugin = plugin,
|
||||
}))
|
||||
return e(
|
||||
StudioPluginAction,
|
||||
Dictionary.merge(props, {
|
||||
plugin = plugin,
|
||||
})
|
||||
)
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
@@ -38,7 +38,10 @@ function StudioPluginGui:init()
|
||||
minimumSize.Y
|
||||
)
|
||||
|
||||
local pluginGui = self.props.plugin:CreateDockWidgetPluginGui(if self.props.isEphemeral then HttpService:GenerateGUID(false) else self.props.id, dockWidgetPluginGuiInfo)
|
||||
local pluginGui = self.props.plugin:CreateDockWidgetPluginGui(
|
||||
if self.props.isEphemeral then HttpService:GenerateGUID(false) else self.props.id,
|
||||
dockWidgetPluginGuiInfo
|
||||
)
|
||||
|
||||
pluginGui.Name = self.props.id
|
||||
pluginGui.Title = self.props.title
|
||||
|
||||
@@ -18,12 +18,8 @@ StudioToggleButton.defaultProps = {
|
||||
}
|
||||
|
||||
function StudioToggleButton:init()
|
||||
local button = self.props.toolbar:CreateButton(
|
||||
self.props.name,
|
||||
self.props.tooltip,
|
||||
self.props.icon,
|
||||
self.props.text
|
||||
)
|
||||
local button =
|
||||
self.props.toolbar:CreateButton(self.props.name, self.props.tooltip, self.props.icon, self.props.text)
|
||||
|
||||
button.Click:Connect(function()
|
||||
if self.props.onClick then
|
||||
@@ -61,9 +57,12 @@ end
|
||||
local function StudioToggleButtonWrapper(props)
|
||||
return e(StudioToolbarContext.Consumer, {
|
||||
render = function(toolbar)
|
||||
return e(StudioToggleButton, Dictionary.merge(props, {
|
||||
toolbar = toolbar,
|
||||
}))
|
||||
return e(
|
||||
StudioToggleButton,
|
||||
Dictionary.merge(props, {
|
||||
toolbar = toolbar,
|
||||
})
|
||||
)
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
@@ -36,9 +36,12 @@ end
|
||||
local function StudioToolbarWrapper(props)
|
||||
return e(StudioPluginContext.Consumer, {
|
||||
render = function(plugin)
|
||||
return e(StudioToolbar, Dictionary.merge(props, {
|
||||
plugin = plugin,
|
||||
}))
|
||||
return e(
|
||||
StudioToolbar,
|
||||
Dictionary.merge(props, {
|
||||
plugin = plugin,
|
||||
})
|
||||
)
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
@@ -41,10 +41,8 @@ end
|
||||
|
||||
function TextButton:render()
|
||||
return Theme.with(function(theme)
|
||||
local textSize = TextService:GetTextSize(
|
||||
self.props.text, 18, Enum.Font.GothamSemibold,
|
||||
Vector2.new(math.huge, math.huge)
|
||||
)
|
||||
local textSize =
|
||||
TextService:GetTextSize(self.props.text, 18, Enum.Font.GothamSemibold, Vector2.new(math.huge, math.huge))
|
||||
|
||||
local style = self.props.style
|
||||
|
||||
@@ -124,7 +122,11 @@ function TextButton:render()
|
||||
|
||||
Background = style == "Solid" and e(SlicedImage, {
|
||||
slice = Assets.Slices.RoundedBackground,
|
||||
color = bindingUtil.mapLerp(bindingEnabled, theme.Enabled.BackgroundColor, theme.Disabled.BackgroundColor),
|
||||
color = bindingUtil.mapLerp(
|
||||
bindingEnabled,
|
||||
theme.Enabled.BackgroundColor,
|
||||
theme.Disabled.BackgroundColor
|
||||
),
|
||||
transparency = self.props.transparency,
|
||||
|
||||
size = UDim2.new(1, 0, 1, 0),
|
||||
|
||||
@@ -38,22 +38,22 @@ end
|
||||
|
||||
function TextInput:render()
|
||||
return Theme.with(function(theme)
|
||||
theme = theme.TextInput
|
||||
theme = theme.TextInput
|
||||
|
||||
local bindingHover = bindingUtil.deriveProperty(self.binding, "hover")
|
||||
local bindingEnabled = bindingUtil.deriveProperty(self.binding, "enabled")
|
||||
|
||||
return e(SlicedImage, {
|
||||
slice = Assets.Slices.RoundedBorder,
|
||||
color = bindingUtil.mapLerp(bindingEnabled, theme.Enabled.BorderColor, theme.Disabled.BorderColor),
|
||||
transparency = self.props.transparency,
|
||||
return e(SlicedImage, {
|
||||
slice = Assets.Slices.RoundedBorder,
|
||||
color = bindingUtil.mapLerp(bindingEnabled, theme.Enabled.BorderColor, theme.Disabled.BorderColor),
|
||||
transparency = self.props.transparency,
|
||||
|
||||
size = self.props.size or UDim2.new(1, 0, 1, 0),
|
||||
position = self.props.position,
|
||||
layoutOrder = self.props.layoutOrder,
|
||||
anchorPoint = self.props.anchorPoint,
|
||||
}, {
|
||||
HoverOverlay = e(SlicedImage, {
|
||||
size = self.props.size or UDim2.new(1, 0, 1, 0),
|
||||
position = self.props.position,
|
||||
layoutOrder = self.props.layoutOrder,
|
||||
anchorPoint = self.props.anchorPoint,
|
||||
}, {
|
||||
HoverOverlay = e(SlicedImage, {
|
||||
slice = Assets.Slices.RoundedBackground,
|
||||
color = theme.ActionFillColor,
|
||||
transparency = Roact.joinBindings({
|
||||
@@ -67,36 +67,40 @@ function TextInput:render()
|
||||
size = UDim2.new(1, 0, 1, 0),
|
||||
zIndex = -1,
|
||||
}),
|
||||
Input = e("TextBox", {
|
||||
BackgroundTransparency = 1,
|
||||
Size = UDim2.fromScale(1, 1),
|
||||
Text = self.props.text,
|
||||
PlaceholderText = self.props.placeholder,
|
||||
Font = Enum.Font.GothamMedium,
|
||||
TextColor3 = bindingUtil.mapLerp(bindingEnabled, theme.Disabled.TextColor, theme.Enabled.TextColor),
|
||||
PlaceholderColor3 = bindingUtil.mapLerp(bindingEnabled, theme.Disabled.PlaceholderColor, theme.Enabled.PlaceholderColor),
|
||||
TextSize = 18,
|
||||
TextEditable = self.props.enabled,
|
||||
ClearTextOnFocus = self.props.clearTextOnFocus,
|
||||
Input = e("TextBox", {
|
||||
BackgroundTransparency = 1,
|
||||
Size = UDim2.fromScale(1, 1),
|
||||
Text = self.props.text,
|
||||
PlaceholderText = self.props.placeholder,
|
||||
Font = Enum.Font.GothamMedium,
|
||||
TextColor3 = bindingUtil.mapLerp(bindingEnabled, theme.Disabled.TextColor, theme.Enabled.TextColor),
|
||||
PlaceholderColor3 = bindingUtil.mapLerp(
|
||||
bindingEnabled,
|
||||
theme.Disabled.PlaceholderColor,
|
||||
theme.Enabled.PlaceholderColor
|
||||
),
|
||||
TextSize = 18,
|
||||
TextEditable = self.props.enabled,
|
||||
ClearTextOnFocus = self.props.clearTextOnFocus,
|
||||
|
||||
[Roact.Event.MouseEnter] = function()
|
||||
self.motor:setGoal({
|
||||
hover = Flipper.Spring.new(1, SPRING_PROPS),
|
||||
})
|
||||
end,
|
||||
[Roact.Event.MouseEnter] = function()
|
||||
self.motor:setGoal({
|
||||
hover = Flipper.Spring.new(1, SPRING_PROPS),
|
||||
})
|
||||
end,
|
||||
|
||||
[Roact.Event.MouseLeave] = function()
|
||||
self.motor:setGoal({
|
||||
hover = Flipper.Spring.new(0, SPRING_PROPS),
|
||||
})
|
||||
end,
|
||||
[Roact.Event.MouseLeave] = function()
|
||||
self.motor:setGoal({
|
||||
hover = Flipper.Spring.new(0, SPRING_PROPS),
|
||||
})
|
||||
end,
|
||||
|
||||
[Roact.Event.FocusLost] = function(rbx)
|
||||
self.props.onEntered(rbx.Text)
|
||||
end,
|
||||
}),
|
||||
Children = Roact.createFragment(self.props[Roact.Children]),
|
||||
})
|
||||
[Roact.Event.FocusLost] = function(rbx)
|
||||
self.props.onEntered(rbx.Text)
|
||||
end,
|
||||
}),
|
||||
Children = Roact.createFragment(self.props[Roact.Children]),
|
||||
})
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
@@ -22,12 +22,16 @@ local TooltipContext = Roact.createContext({})
|
||||
|
||||
local function Popup(props)
|
||||
local textSize = TextService:GetTextSize(
|
||||
props.Text, 16, Enum.Font.GothamMedium, Vector2.new(math.min(props.parentSize.X, 160), math.huge)
|
||||
props.Text,
|
||||
16,
|
||||
Enum.Font.GothamMedium,
|
||||
Vector2.new(math.min(props.parentSize.X, 160), math.huge)
|
||||
) + TEXT_PADDING + (Vector2.one * 2)
|
||||
|
||||
local trigger = props.Trigger:getValue()
|
||||
|
||||
local spaceBelow = props.parentSize.Y - (trigger.AbsolutePosition.Y + trigger.AbsoluteSize.Y - Y_OVERLAP + TAIL_SIZE)
|
||||
local spaceBelow = props.parentSize.Y
|
||||
- (trigger.AbsolutePosition.Y + trigger.AbsoluteSize.Y - Y_OVERLAP + TAIL_SIZE)
|
||||
local spaceAbove = trigger.AbsolutePosition.Y + Y_OVERLAP - TAIL_SIZE
|
||||
|
||||
-- If there's not enough space below, and there's more space above, then show the tooltip above the trigger
|
||||
@@ -39,7 +43,10 @@ local function Popup(props)
|
||||
if displayAbove then
|
||||
Y = math.max(trigger.AbsolutePosition.Y - TAIL_SIZE - textSize.Y + Y_OVERLAP, 0)
|
||||
else
|
||||
Y = math.min(trigger.AbsolutePosition.Y + trigger.AbsoluteSize.Y + TAIL_SIZE - Y_OVERLAP, props.parentSize.Y - textSize.Y)
|
||||
Y = math.min(
|
||||
trigger.AbsolutePosition.Y + trigger.AbsoluteSize.Y + TAIL_SIZE - Y_OVERLAP,
|
||||
props.parentSize.Y - textSize.Y
|
||||
)
|
||||
end
|
||||
|
||||
return Theme.with(function(theme)
|
||||
@@ -64,17 +71,9 @@ local function Popup(props)
|
||||
|
||||
Tail = e("ImageLabel", {
|
||||
ZIndex = 100,
|
||||
Position =
|
||||
if displayAbove then
|
||||
UDim2.new(
|
||||
0, math.clamp(props.Position.X - X, 6, textSize.X-6),
|
||||
1, -1
|
||||
)
|
||||
else
|
||||
UDim2.new(
|
||||
0, math.clamp(props.Position.X - X, 6, textSize.X-6),
|
||||
0, -TAIL_SIZE+1
|
||||
),
|
||||
Position = if displayAbove
|
||||
then UDim2.new(0, math.clamp(props.Position.X - X, 6, textSize.X - 6), 1, -1)
|
||||
else UDim2.new(0, math.clamp(props.Position.X - X, 6, textSize.X - 6), 0, -TAIL_SIZE + 1),
|
||||
Size = UDim2.fromOffset(TAIL_SIZE, TAIL_SIZE),
|
||||
AnchorPoint = Vector2.new(0.5, 0),
|
||||
Rotation = if displayAbove then 180 else 0,
|
||||
@@ -90,7 +89,7 @@ local function Popup(props)
|
||||
ImageColor3 = theme.BorderedContainer.BorderColor,
|
||||
ImageTransparency = props.transparency,
|
||||
}),
|
||||
})
|
||||
}),
|
||||
})
|
||||
end)
|
||||
end
|
||||
@@ -200,9 +199,10 @@ function Trigger:isHovering()
|
||||
local size = rbx.AbsoluteSize
|
||||
local mousePos = self.mousePos
|
||||
|
||||
return
|
||||
mousePos.X >= pos.X and mousePos.X <= pos.X + size.X
|
||||
and mousePos.Y >= pos.Y and mousePos.Y <= pos.Y + size.Y
|
||||
return mousePos.X >= pos.X
|
||||
and mousePos.X <= pos.X + size.X
|
||||
and mousePos.Y >= pos.Y
|
||||
and mousePos.Y <= pos.Y + size.Y
|
||||
end
|
||||
return false
|
||||
end
|
||||
@@ -236,7 +236,9 @@ end
|
||||
function Trigger:render()
|
||||
local function recalculate(rbx)
|
||||
local widget = rbx:FindFirstAncestorOfClass("DockWidgetPluginGui")
|
||||
if not widget then return end
|
||||
if not widget then
|
||||
return
|
||||
end
|
||||
self.mousePos = widget:GetRelativeMousePosition()
|
||||
|
||||
self:managePopup()
|
||||
|
||||
@@ -24,9 +24,7 @@ function TouchRipple:init()
|
||||
})
|
||||
self.binding = bindingUtil.fromMotor(self.motor)
|
||||
|
||||
self.position, self.setPosition = Roact.createBinding(
|
||||
Vector2.new(0, 0)
|
||||
)
|
||||
self.position, self.setPosition = Roact.createBinding(Vector2.new(0, 0))
|
||||
end
|
||||
|
||||
function TouchRipple:reset()
|
||||
@@ -43,10 +41,7 @@ function TouchRipple:calculateRadius(position)
|
||||
local container = self.ref.current
|
||||
|
||||
if container then
|
||||
local corner = Vector2.new(
|
||||
math.floor((1 - position.X) + 0.5),
|
||||
math.floor((1 - position.Y) + 0.5)
|
||||
)
|
||||
local corner = Vector2.new(math.floor((1 - position.X) + 0.5), math.floor((1 - position.Y) + 0.5))
|
||||
|
||||
local size = container.AbsoluteSize
|
||||
local ratio = size / math.min(size.X, size.Y)
|
||||
@@ -93,10 +88,7 @@ function TouchRipple:render()
|
||||
input:GetPropertyChangedSignal("UserInputState"):Connect(function()
|
||||
local userInputState = input.UserInputState
|
||||
|
||||
if
|
||||
userInputState == Enum.UserInputState.Cancel
|
||||
or userInputState == Enum.UserInputState.End
|
||||
then
|
||||
if userInputState == Enum.UserInputState.Cancel or userInputState == Enum.UserInputState.End then
|
||||
self.motor:setGoal({
|
||||
opacity = Flipper.Spring.new(0, {
|
||||
frequency = 5,
|
||||
@@ -127,8 +119,10 @@ function TouchRipple:render()
|
||||
local containerAspect = containerSize.X / containerSize.Y
|
||||
|
||||
return UDim2.new(
|
||||
currentSize / math.max(containerAspect, 1), 0,
|
||||
currentSize * math.min(containerAspect, 1), 0
|
||||
currentSize / math.max(containerAspect, 1),
|
||||
0,
|
||||
currentSize * math.min(containerAspect, 1),
|
||||
0
|
||||
)
|
||||
end
|
||||
end),
|
||||
|
||||
Reference in New Issue
Block a user