@quenty/colorpicker 10.20.0-canary.ae8d76d.0 → 10.20.1-canary.4ea661c.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -2
- package/package.json +12 -12
- package/src/Client/ColorPickerUtils.lua +2 -2
- package/src/Client/Cursor/ColorPickerCursorPreview.lua +3 -3
- package/src/Client/Cursor/ColorPickerTriangle.lua +13 -14
- package/src/Client/Cursor/HSColorPickerCursor.lua +31 -29
- package/src/Client/HSV/HSColorPicker.lua +14 -14
- package/src/Client/HSV/HSColorPicker.story.lua +5 -4
- package/src/Client/HSV/HSVColorPicker.story.lua +5 -4
- package/src/Client/HSV/ValueColorPicker.lua +27 -27
- package/src/Client/HSV/ValueColorPicker.story.lua +4 -3
- package/src/Client/Story/ColorPickerStoryUtils.lua +71 -69
package/CHANGELOG.md
CHANGED
|
@@ -3,12 +3,20 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
## [10.20.1-canary.4ea661c.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/colorpicker@10.20.0...@quenty/colorpicker@10.20.1-canary.4ea661c.0) (2025-08-12)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @quenty/colorpicker
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [10.20.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/colorpicker@10.19.3...@quenty/colorpicker@10.20.0) (2025-05-10)
|
|
7
15
|
|
|
8
16
|
|
|
9
17
|
### Features
|
|
10
18
|
|
|
11
|
-
* Add even more types ([
|
|
19
|
+
* Add even more types ([b31717d](https://github.com/Quenty/NevermoreEngine/commit/b31717d8c9f7620c457f5018a2affa760a65334a))
|
|
12
20
|
|
|
13
21
|
|
|
14
22
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/colorpicker",
|
|
3
|
-
"version": "10.20.
|
|
3
|
+
"version": "10.20.1-canary.4ea661c.0",
|
|
4
4
|
"description": "Color picking UI system for Roblox.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -28,17 +28,17 @@
|
|
|
28
28
|
"access": "public"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@quenty/baseobject": "10.
|
|
32
|
-
"@quenty/basicpane": "13.18.
|
|
33
|
-
"@quenty/blend": "12.19.
|
|
34
|
-
"@quenty/buttondragmodel": "1.16.
|
|
35
|
-
"@quenty/color3utils": "11.19.
|
|
36
|
-
"@quenty/inputobjectutils": "4.19.
|
|
37
|
-
"@quenty/instanceutils": "13.18.
|
|
38
|
-
"@quenty/loader": "10.
|
|
39
|
-
"@quenty/maid": "3.
|
|
31
|
+
"@quenty/baseobject": "10.9.0",
|
|
32
|
+
"@quenty/basicpane": "13.18.1-canary.4ea661c.0",
|
|
33
|
+
"@quenty/blend": "12.19.1-canary.4ea661c.0",
|
|
34
|
+
"@quenty/buttondragmodel": "1.16.1-canary.4ea661c.0",
|
|
35
|
+
"@quenty/color3utils": "11.19.1-canary.4ea661c.0",
|
|
36
|
+
"@quenty/inputobjectutils": "4.19.1-canary.4ea661c.0",
|
|
37
|
+
"@quenty/instanceutils": "13.18.1-canary.4ea661c.0",
|
|
38
|
+
"@quenty/loader": "10.9.0",
|
|
39
|
+
"@quenty/maid": "3.5.0",
|
|
40
40
|
"@quenty/math": "2.7.3",
|
|
41
|
-
"@quenty/valueobject": "13.18.
|
|
41
|
+
"@quenty/valueobject": "13.18.1-canary.4ea661c.0"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "4ea661c3fb52b8a3843c7d879c98c1de8a733798"
|
|
44
44
|
}
|
|
@@ -25,7 +25,7 @@ function ColorPickerUtils.getOutlineWithContrast(color: Color3, backingColor: Co
|
|
|
25
25
|
v = math.clamp(v - 80, 0, 100)
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
-
return LuvColor3Utils.toColor3({l, u, v})
|
|
28
|
+
return LuvColor3Utils.toColor3({ l, u, v })
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
return ColorPickerUtils
|
|
31
|
+
return ColorPickerUtils
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
local require = require(script.Parent.loader).load(script)
|
|
8
8
|
|
|
9
9
|
local BasicPane = require("BasicPane")
|
|
10
|
-
local Blend = require("Blend")
|
|
11
10
|
local BasicPaneUtils = require("BasicPaneUtils")
|
|
12
|
-
local
|
|
11
|
+
local Blend = require("Blend")
|
|
13
12
|
local ColorPickerUtils = require("ColorPickerUtils")
|
|
14
13
|
local LuvColor3Utils = require("LuvColor3Utils")
|
|
15
|
-
local
|
|
14
|
+
local Math = require("Math")
|
|
16
15
|
local Signal = require("Signal")
|
|
16
|
+
local ValueObject = require("ValueObject")
|
|
17
17
|
|
|
18
18
|
local ColorPickerCursorPreview = setmetatable({}, BasicPane)
|
|
19
19
|
ColorPickerCursorPreview.ClassName = "ColorPickerCursorPreview"
|
|
@@ -66,31 +66,30 @@ end
|
|
|
66
66
|
|
|
67
67
|
function ColorPickerTriangle._render(self: ColorPickerTriangle)
|
|
68
68
|
return Blend.New "Frame" {
|
|
69
|
-
Name = "ColorPickerTriangle"
|
|
70
|
-
Size = UDim2.new(1, 0, 1, 0)
|
|
71
|
-
BackgroundTransparency = 1
|
|
69
|
+
Name = "ColorPickerTriangle",
|
|
70
|
+
Size = UDim2.new(1, 0, 1, 0),
|
|
71
|
+
BackgroundTransparency = 1,
|
|
72
72
|
|
|
73
73
|
Blend.New "ImageLabel" {
|
|
74
|
-
BackgroundTransparency = 1
|
|
75
|
-
Size = UDim2.new(1, 0, 1, 0)
|
|
74
|
+
BackgroundTransparency = 1,
|
|
75
|
+
Size = UDim2.new(1, 0, 1, 0),
|
|
76
76
|
ImageColor3 = Blend.Computed(self._color, self._backgroundColorHint, function(color, backingColor)
|
|
77
77
|
return ColorPickerUtils.getOutlineWithContrast(color, backingColor)
|
|
78
|
-
end)
|
|
79
|
-
ImageTransparency = self._transparency
|
|
80
|
-
Image = "rbxassetid://9291514809"
|
|
81
|
-
}
|
|
78
|
+
end),
|
|
79
|
+
ImageTransparency = self._transparency,
|
|
80
|
+
Image = "rbxassetid://9291514809",
|
|
81
|
+
},
|
|
82
82
|
|
|
83
83
|
Blend.New "UIAspectRatioConstraint" {
|
|
84
84
|
AspectRatio = Blend.Computed(self._sizeValue, function(size)
|
|
85
85
|
if size.x <= 0 or size.y <= 0 then
|
|
86
86
|
return 1
|
|
87
87
|
else
|
|
88
|
-
return size.x/size.y
|
|
88
|
+
return size.x / size.y
|
|
89
89
|
end
|
|
90
|
-
end)
|
|
91
|
-
}
|
|
90
|
+
end),
|
|
91
|
+
},
|
|
92
92
|
}
|
|
93
93
|
end
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
return ColorPickerTriangle
|
|
95
|
+
return ColorPickerTriangle
|
|
@@ -10,8 +10,8 @@ local require = require(script.Parent.loader).load(script)
|
|
|
10
10
|
local BaseObject = require("BaseObject")
|
|
11
11
|
local Blend = require("Blend")
|
|
12
12
|
local ColorPickerUtils = require("ColorPickerUtils")
|
|
13
|
-
local ValueObject = require("ValueObject")
|
|
14
13
|
local Signal = require("Signal")
|
|
14
|
+
local ValueObject = require("ValueObject")
|
|
15
15
|
|
|
16
16
|
local HSColorPickerCursor = setmetatable({}, BaseObject)
|
|
17
17
|
HSColorPickerCursor.ClassName = "HSColorPickerCursor"
|
|
@@ -113,55 +113,57 @@ end
|
|
|
113
113
|
|
|
114
114
|
function HSColorPickerCursor._render(self: HSColorPickerCursor)
|
|
115
115
|
return Blend.New "Frame" {
|
|
116
|
-
Name = "HSColorPickerCursor"
|
|
116
|
+
Name = "HSColorPickerCursor",
|
|
117
117
|
Size = Blend.Computed(self._height, function(height)
|
|
118
118
|
return UDim2.fromScale(height, height)
|
|
119
|
-
end)
|
|
120
|
-
BackgroundTransparency = 1
|
|
121
|
-
AnchorPoint = Vector2.new(0.5, 0.5)
|
|
119
|
+
end),
|
|
120
|
+
BackgroundTransparency = 1,
|
|
121
|
+
AnchorPoint = Vector2.new(0.5, 0.5),
|
|
122
122
|
Position = Blend.Computed(self._position, function(pos)
|
|
123
123
|
return UDim2.fromScale(pos.x, pos.y)
|
|
124
|
-
end)
|
|
124
|
+
end),
|
|
125
125
|
|
|
126
126
|
Blend.New "UIAspectRatioConstraint" {
|
|
127
|
-
AspectRatio = 1
|
|
128
|
-
}
|
|
127
|
+
AspectRatio = 1,
|
|
128
|
+
},
|
|
129
129
|
|
|
130
130
|
Blend.New "Frame" {
|
|
131
|
-
AnchorPoint = Vector2.new(0.5, 0.5)
|
|
132
|
-
Position = UDim2.fromScale(0.5, 0.5)
|
|
133
|
-
Visible = self._horizontalHairVisible
|
|
131
|
+
AnchorPoint = Vector2.new(0.5, 0.5),
|
|
132
|
+
Position = UDim2.fromScale(0.5, 0.5),
|
|
133
|
+
Visible = self._horizontalHairVisible,
|
|
134
134
|
Size = Blend.Computed(self._crossHairWidthAbs, function(width)
|
|
135
135
|
return UDim2.new(1, 0, 0, width)
|
|
136
|
-
end)
|
|
136
|
+
end),
|
|
137
137
|
BackgroundColor3 = Blend.Computed(self._backgroundColorHint, function(backingColor)
|
|
138
138
|
return ColorPickerUtils.getOutlineWithContrast(Color3.new(0, 0, 0), backingColor)
|
|
139
|
-
end)
|
|
140
|
-
BackgroundTransparency = self._transparency
|
|
139
|
+
end),
|
|
140
|
+
BackgroundTransparency = self._transparency,
|
|
141
141
|
|
|
142
142
|
Blend.New "UICorner" {
|
|
143
|
-
CornerRadius = UDim.new(1, 0)
|
|
144
|
-
}
|
|
145
|
-
}
|
|
143
|
+
CornerRadius = UDim.new(1, 0),
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
146
|
|
|
147
147
|
Blend.New "Frame" {
|
|
148
|
-
AnchorPoint = Vector2.new(0.5, 0.5)
|
|
149
|
-
Position = UDim2.fromScale(0.5, 0.5)
|
|
150
|
-
Visible = self._verticalHairVisible
|
|
148
|
+
AnchorPoint = Vector2.new(0.5, 0.5),
|
|
149
|
+
Position = UDim2.fromScale(0.5, 0.5),
|
|
150
|
+
Visible = self._verticalHairVisible,
|
|
151
151
|
Size = Blend.Computed(self._crossHairWidthAbs, function(width)
|
|
152
152
|
return UDim2.new(0, width, 1, 0)
|
|
153
|
-
end)
|
|
154
|
-
BackgroundColor3 = Blend.Spring(
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
153
|
+
end),
|
|
154
|
+
BackgroundColor3 = Blend.Spring(
|
|
155
|
+
Blend.Computed(self._backgroundColorHint, function(backingColor)
|
|
156
|
+
return ColorPickerUtils.getOutlineWithContrast(Color3.new(0, 0, 0), backingColor)
|
|
157
|
+
end),
|
|
158
|
+
20
|
|
159
|
+
),
|
|
160
|
+
BackgroundTransparency = self._transparency,
|
|
158
161
|
|
|
159
162
|
Blend.New "UICorner" {
|
|
160
|
-
CornerRadius = UDim.new(1, 0)
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
+
CornerRadius = UDim.new(1, 0),
|
|
164
|
+
},
|
|
165
|
+
},
|
|
163
166
|
}
|
|
164
167
|
end
|
|
165
168
|
|
|
166
|
-
|
|
167
169
|
return HSColorPickerCursor
|
|
@@ -173,33 +173,33 @@ end
|
|
|
173
173
|
|
|
174
174
|
function HSColorPicker:_render()
|
|
175
175
|
return Blend.New "ImageButton" {
|
|
176
|
-
Name = "HSColorPicker"
|
|
177
|
-
Size = UDim2.new(1, 0, 1, 0)
|
|
178
|
-
BackgroundTransparency = 1
|
|
179
|
-
Active = true
|
|
180
|
-
Image = "rbxassetid://9290917908"
|
|
181
|
-
ImageTransparency = self._transparency
|
|
176
|
+
Name = "HSColorPicker",
|
|
177
|
+
Size = UDim2.new(1, 0, 1, 0),
|
|
178
|
+
BackgroundTransparency = 1,
|
|
179
|
+
Active = true,
|
|
180
|
+
Image = "rbxassetid://9290917908",
|
|
181
|
+
ImageTransparency = self._transparency,
|
|
182
182
|
|
|
183
183
|
[Blend.Instance] = function(inst)
|
|
184
184
|
self._dragModel:SetButton(inst)
|
|
185
|
-
end
|
|
185
|
+
end,
|
|
186
186
|
|
|
187
187
|
Blend.New "UIAspectRatioConstraint" {
|
|
188
188
|
AspectRatio = Blend.Computed(self._sizeValue, function(size)
|
|
189
189
|
if size.x <= 0 or size.y <= 0 then
|
|
190
190
|
return 1
|
|
191
191
|
else
|
|
192
|
-
return size.x/size.y
|
|
192
|
+
return size.x / size.y
|
|
193
193
|
end
|
|
194
|
-
end)
|
|
195
|
-
}
|
|
194
|
+
end),
|
|
195
|
+
},
|
|
196
196
|
|
|
197
197
|
Blend.New "UICorner" {
|
|
198
|
-
CornerRadius = UDim.new(0, 4)
|
|
199
|
-
}
|
|
198
|
+
CornerRadius = UDim.new(0, 4),
|
|
199
|
+
},
|
|
200
200
|
|
|
201
|
-
self._preview.Gui
|
|
202
|
-
self._cursor.Gui
|
|
201
|
+
self._preview.Gui,
|
|
202
|
+
self._cursor.Gui,
|
|
203
203
|
}
|
|
204
204
|
end
|
|
205
205
|
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
@class serviceBag.story
|
|
3
3
|
]]
|
|
4
4
|
|
|
5
|
-
local require =
|
|
5
|
+
local require =
|
|
6
|
+
require(game:GetService("ServerScriptService"):FindFirstChild("LoaderUtils", true).Parent).bootstrapStory(script)
|
|
6
7
|
|
|
7
|
-
local Maid = require("Maid")
|
|
8
8
|
local HSColorPicker = require("HSColorPicker")
|
|
9
|
+
local Maid = require("Maid")
|
|
9
10
|
|
|
10
11
|
return function(target)
|
|
11
12
|
local maid = Maid.new()
|
|
@@ -13,11 +14,11 @@ return function(target)
|
|
|
13
14
|
local picker = maid:Add(HSColorPicker.new())
|
|
14
15
|
picker:SetColor(Color3.new(1, 1, 1))
|
|
15
16
|
picker.Gui.AnchorPoint = Vector2.new(0.5, 0.5)
|
|
16
|
-
picker.Gui.Position = UDim2.fromScale(0.5, 0.5)
|
|
17
|
+
picker.Gui.Position = UDim2.fromScale(0.5, 0.5)
|
|
17
18
|
picker.Gui.Size = UDim2.fromScale(0.8, 0.8)
|
|
18
19
|
picker.Gui.Parent = target
|
|
19
20
|
|
|
20
21
|
return function()
|
|
21
22
|
maid:DoCleaning()
|
|
22
23
|
end
|
|
23
|
-
end
|
|
24
|
+
end
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
@class HSVColorPicker.story
|
|
3
3
|
]]
|
|
4
4
|
|
|
5
|
-
local require =
|
|
5
|
+
local require =
|
|
6
|
+
require(game:GetService("ServerScriptService"):FindFirstChild("LoaderUtils", true).Parent).bootstrapStory(script)
|
|
6
7
|
|
|
7
|
-
local Maid = require("Maid")
|
|
8
8
|
local HSVColorPicker = require("HSVColorPicker")
|
|
9
|
+
local Maid = require("Maid")
|
|
9
10
|
|
|
10
11
|
return function(target)
|
|
11
12
|
local maid = Maid.new()
|
|
@@ -13,11 +14,11 @@ return function(target)
|
|
|
13
14
|
local picker = maid:Add(HSVColorPicker.new())
|
|
14
15
|
picker:SetColor(Color3.new(0.5, 0.8, 0.3))
|
|
15
16
|
picker.Gui.AnchorPoint = Vector2.new(0.5, 0.5)
|
|
16
|
-
picker.Gui.Position = UDim2.fromScale(0.5, 0.5)
|
|
17
|
+
picker.Gui.Position = UDim2.fromScale(0.5, 0.5)
|
|
17
18
|
picker.Gui.Size = UDim2.fromScale(0.8, 0.8)
|
|
18
19
|
picker.Gui.Parent = target
|
|
19
20
|
|
|
20
21
|
return function()
|
|
21
22
|
maid:DoCleaning()
|
|
22
23
|
end
|
|
23
|
-
end
|
|
24
|
+
end
|
|
@@ -10,9 +10,9 @@ local require = require(script.Parent.loader).load(script)
|
|
|
10
10
|
local BaseObject = require("BaseObject")
|
|
11
11
|
local Blend = require("Blend")
|
|
12
12
|
local ButtonDragModel = require("ButtonDragModel")
|
|
13
|
-
local ValueObject = require("ValueObject")
|
|
14
13
|
local ColorPickerCursorPreview = require("ColorPickerCursorPreview")
|
|
15
14
|
local ColorPickerTriangle = require("ColorPickerTriangle")
|
|
15
|
+
local ValueObject = require("ValueObject")
|
|
16
16
|
|
|
17
17
|
local ValueColorPicker = setmetatable({}, BaseObject)
|
|
18
18
|
ValueColorPicker.ClassName = "ValueColorPicker"
|
|
@@ -203,35 +203,35 @@ end
|
|
|
203
203
|
|
|
204
204
|
function ValueColorPicker:_render()
|
|
205
205
|
return Blend.New "ImageButton" {
|
|
206
|
-
Name = "HSColorPicker"
|
|
207
|
-
Size = UDim2.new(1, 0, 1, 0)
|
|
208
|
-
BackgroundTransparency = 1
|
|
209
|
-
Active = true
|
|
206
|
+
Name = "HSColorPicker",
|
|
207
|
+
Size = UDim2.new(1, 0, 1, 0),
|
|
208
|
+
BackgroundTransparency = 1,
|
|
209
|
+
Active = true,
|
|
210
210
|
|
|
211
211
|
[Blend.Instance] = function(inst)
|
|
212
212
|
self._dragModel:SetButton(inst)
|
|
213
|
-
end
|
|
213
|
+
end,
|
|
214
214
|
|
|
215
215
|
Blend.New "UIAspectRatioConstraint" {
|
|
216
216
|
AspectRatio = Blend.Computed(self._sizeValue, function(size)
|
|
217
217
|
if size.x <= 0 or size.y <= 0 then
|
|
218
218
|
return 1
|
|
219
219
|
else
|
|
220
|
-
return size.x/size.y
|
|
220
|
+
return size.x / size.y
|
|
221
221
|
end
|
|
222
|
-
end)
|
|
223
|
-
}
|
|
222
|
+
end),
|
|
223
|
+
},
|
|
224
224
|
|
|
225
225
|
Blend.New "Frame" {
|
|
226
|
-
BackgroundColor3 = Color3.new(1, 1, 1)
|
|
227
|
-
BackgroundTransparency = self._transparency
|
|
226
|
+
BackgroundColor3 = Color3.new(1, 1, 1),
|
|
227
|
+
BackgroundTransparency = self._transparency,
|
|
228
228
|
Size = Blend.Computed(self._leftWidth, self._sizeValue, function(width, sizeValue)
|
|
229
229
|
if sizeValue.x == 0 then
|
|
230
230
|
return UDim2.new(0, 0, 1, 0)
|
|
231
231
|
end
|
|
232
232
|
|
|
233
|
-
return UDim2.new(width/sizeValue.x, 0, 1, 0)
|
|
234
|
-
end)
|
|
233
|
+
return UDim2.new(width / sizeValue.x, 0, 1, 0)
|
|
234
|
+
end),
|
|
235
235
|
|
|
236
236
|
Blend.New "UIGradient" {
|
|
237
237
|
Color = Blend.Computed(self._hsvColorValue, function(color)
|
|
@@ -239,31 +239,31 @@ function ValueColorPicker:_render()
|
|
|
239
239
|
local start = Color3.fromHSV(h, s, 0)
|
|
240
240
|
local finish = Color3.fromHSV(h, s, 1)
|
|
241
241
|
return ColorSequence.new(start, finish)
|
|
242
|
-
end)
|
|
243
|
-
Rotation = -90
|
|
244
|
-
}
|
|
242
|
+
end),
|
|
243
|
+
Rotation = -90,
|
|
244
|
+
},
|
|
245
245
|
Blend.New "UICorner" {
|
|
246
|
-
CornerRadius = UDim.new(0, 4)
|
|
247
|
-
}
|
|
246
|
+
CornerRadius = UDim.new(0, 4),
|
|
247
|
+
},
|
|
248
248
|
|
|
249
|
-
self._preview.Gui
|
|
249
|
+
self._preview.Gui,
|
|
250
250
|
-- self._cursor.Gui;
|
|
251
|
-
}
|
|
251
|
+
},
|
|
252
252
|
|
|
253
253
|
Blend.New "Frame" {
|
|
254
|
-
BackgroundTransparency = 1
|
|
255
|
-
Position = UDim2.fromScale(1, 0)
|
|
256
|
-
AnchorPoint = Vector2.new(1, 0)
|
|
254
|
+
BackgroundTransparency = 1,
|
|
255
|
+
Position = UDim2.fromScale(1, 0),
|
|
256
|
+
AnchorPoint = Vector2.new(1, 0),
|
|
257
257
|
Size = Blend.Computed(self._leftWidth, self._sizeValue, function(width, sizeValue)
|
|
258
258
|
if sizeValue.x == 0 then
|
|
259
259
|
return UDim2.new(0, 0, 1, 0)
|
|
260
260
|
end
|
|
261
261
|
|
|
262
|
-
return UDim2.new((sizeValue.x - width)/sizeValue.x, 0, 1, 0)
|
|
263
|
-
end)
|
|
262
|
+
return UDim2.new((sizeValue.x - width) / sizeValue.x, 0, 1, 0)
|
|
263
|
+
end),
|
|
264
264
|
|
|
265
|
-
self._triangle.Gui
|
|
266
|
-
}
|
|
265
|
+
self._triangle.Gui,
|
|
266
|
+
},
|
|
267
267
|
}
|
|
268
268
|
end
|
|
269
269
|
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
@class ValueColorPicker.story
|
|
3
3
|
]]
|
|
4
4
|
|
|
5
|
-
local require =
|
|
5
|
+
local require =
|
|
6
|
+
require(game:GetService("ServerScriptService"):FindFirstChild("LoaderUtils", true).Parent).bootstrapStory(script)
|
|
6
7
|
|
|
7
8
|
local Maid = require("Maid")
|
|
8
9
|
local ValueColorPicker = require("ValueColorPicker")
|
|
@@ -13,11 +14,11 @@ return function(target)
|
|
|
13
14
|
local picker = maid:Add(ValueColorPicker.new())
|
|
14
15
|
picker:SetHSVColor(Vector3.new(1, 0.5, 1))
|
|
15
16
|
picker.Gui.AnchorPoint = Vector2.new(0.5, 0.5)
|
|
16
|
-
picker.Gui.Position = UDim2.fromScale(0.5, 0.5)
|
|
17
|
+
picker.Gui.Position = UDim2.fromScale(0.5, 0.5)
|
|
17
18
|
picker.Gui.Size = UDim2.fromScale(0.8, 0.8)
|
|
18
19
|
picker.Gui.Parent = target
|
|
19
20
|
|
|
20
21
|
return function()
|
|
21
22
|
maid:DoCleaning()
|
|
22
23
|
end
|
|
23
|
-
end
|
|
24
|
+
end
|
|
@@ -14,8 +14,8 @@ function ColorPickerStoryUtils.createPicker(maid, valueSync, labelText, currentV
|
|
|
14
14
|
local picker = maid:Add(HSVColorPicker.new())
|
|
15
15
|
picker.Gui.AnchorPoint = Vector2.new(0.5, 1)
|
|
16
16
|
picker.Gui.Position = UDim2.new(0.5, 0, 1, 0)
|
|
17
|
-
picker.Gui.Size = UDim2.new(0, 150, 1, -30)
|
|
18
|
-
picker.Gui.ZIndex = 2
|
|
17
|
+
picker.Gui.Size = UDim2.new(0, 150, 1, -30)
|
|
18
|
+
picker.Gui.ZIndex = 2
|
|
19
19
|
|
|
20
20
|
maid:GiveTask(picker:SyncValue(valueSync))
|
|
21
21
|
|
|
@@ -35,57 +35,59 @@ function ColorPickerStoryUtils.createPicker(maid, valueSync, labelText, currentV
|
|
|
35
35
|
end))
|
|
36
36
|
|
|
37
37
|
return Blend.New "ImageButton" {
|
|
38
|
-
BackgroundTransparency = 0
|
|
39
|
-
AutoButtonColor = true
|
|
40
|
-
BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
|
|
41
|
-
Size = Blend.Spring(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
38
|
+
BackgroundTransparency = 0,
|
|
39
|
+
AutoButtonColor = true,
|
|
40
|
+
BackgroundColor3 = Color3.new(0.2, 0.2, 0.2),
|
|
41
|
+
Size = Blend.Spring(
|
|
42
|
+
Blend.Computed(visible, function(isVisible)
|
|
43
|
+
if isVisible then
|
|
44
|
+
return UDim2.new(0, 170, 0, 190)
|
|
45
|
+
else
|
|
46
|
+
return UDim2.new(0, 170, 0, 50)
|
|
47
|
+
end
|
|
48
|
+
end),
|
|
49
|
+
40
|
|
50
|
+
),
|
|
51
|
+
ClipsDescendants = false,
|
|
49
52
|
[Blend.OnEvent "Activated"] = function()
|
|
50
53
|
visible.Value = not visible.Value
|
|
51
|
-
end
|
|
54
|
+
end,
|
|
52
55
|
|
|
53
|
-
picker.Gui
|
|
56
|
+
picker.Gui,
|
|
54
57
|
Blend.New "TextLabel" {
|
|
55
|
-
BackgroundTransparency = 1
|
|
56
|
-
Text = labelText
|
|
57
|
-
Position = UDim2.new(0, 35, 0, 5)
|
|
58
|
-
Size = UDim2.new(1, -40, 0, 20)
|
|
59
|
-
Font = Enum.Font.FredokaOne
|
|
60
|
-
TextXAlignment = Enum.TextXAlignment.Left
|
|
61
|
-
TextScaled = true
|
|
62
|
-
TextColor3 = Color3.new(1, 1, 1)
|
|
63
|
-
ZIndex = 0
|
|
64
|
-
}
|
|
58
|
+
BackgroundTransparency = 1,
|
|
59
|
+
Text = labelText,
|
|
60
|
+
Position = UDim2.new(0, 35, 0, 5),
|
|
61
|
+
Size = UDim2.new(1, -40, 0, 20),
|
|
62
|
+
Font = Enum.Font.FredokaOne,
|
|
63
|
+
TextXAlignment = Enum.TextXAlignment.Left,
|
|
64
|
+
TextScaled = true,
|
|
65
|
+
TextColor3 = Color3.new(1, 1, 1),
|
|
66
|
+
ZIndex = 0,
|
|
67
|
+
},
|
|
65
68
|
|
|
66
69
|
Blend.New "Frame" {
|
|
67
|
-
BackgroundColor3 = valueSync
|
|
68
|
-
Size = UDim2.new(0, 20, 0, 20)
|
|
69
|
-
Position = UDim2.new(0, 5, 0, 5)
|
|
70
|
+
BackgroundColor3 = valueSync,
|
|
71
|
+
Size = UDim2.new(0, 20, 0, 20),
|
|
72
|
+
Position = UDim2.new(0, 5, 0, 5),
|
|
70
73
|
[Blend.Children] = {
|
|
71
74
|
Blend.New "UICorner" {
|
|
72
|
-
CornerRadius = UDim.new(0, 10)
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
75
|
+
CornerRadius = UDim.new(0, 10),
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
76
79
|
|
|
77
80
|
Blend.New "UIPadding" {
|
|
78
|
-
PaddingTop = UDim.new(0, 10)
|
|
79
|
-
PaddingBottom = UDim.new(0, 10)
|
|
80
|
-
PaddingLeft = UDim.new(0, 10)
|
|
81
|
-
PaddingRight = UDim.new(0, 10)
|
|
82
|
-
}
|
|
81
|
+
PaddingTop = UDim.new(0, 10),
|
|
82
|
+
PaddingBottom = UDim.new(0, 10),
|
|
83
|
+
PaddingLeft = UDim.new(0, 10),
|
|
84
|
+
PaddingRight = UDim.new(0, 10),
|
|
85
|
+
},
|
|
83
86
|
|
|
84
87
|
Blend.New "UICorner" {
|
|
85
|
-
CornerRadius = UDim.new(0, 10)
|
|
86
|
-
}
|
|
88
|
+
CornerRadius = UDim.new(0, 10),
|
|
89
|
+
},
|
|
87
90
|
}
|
|
88
|
-
|
|
89
91
|
end
|
|
90
92
|
|
|
91
93
|
function ColorPickerStoryUtils.create(maid, buildPickers)
|
|
@@ -99,26 +101,26 @@ function ColorPickerStoryUtils.create(maid, buildPickers)
|
|
|
99
101
|
|
|
100
102
|
local function pickerGroup(pickers)
|
|
101
103
|
return Blend.New "Frame" {
|
|
102
|
-
Size = UDim2.new(1, 0, 0, 0)
|
|
103
|
-
AnchorPoint = Vector2.new(0.5, 0.5)
|
|
104
|
-
Position = UDim2.fromScale(0.5, 0.5)
|
|
105
|
-
BackgroundTransparency = 1
|
|
106
|
-
AutomaticSize = Enum.AutomaticSize.Y
|
|
104
|
+
Size = UDim2.new(1, 0, 0, 0),
|
|
105
|
+
AnchorPoint = Vector2.new(0.5, 0.5),
|
|
106
|
+
Position = UDim2.fromScale(0.5, 0.5),
|
|
107
|
+
BackgroundTransparency = 1,
|
|
108
|
+
AutomaticSize = Enum.AutomaticSize.Y,
|
|
107
109
|
|
|
108
110
|
Blend.New "UIListLayout" {
|
|
109
|
-
Padding = UDim.new(0, 10)
|
|
110
|
-
HorizontalAlignment = Enum.HorizontalAlignment.Left
|
|
111
|
-
VerticalAlignment = Enum.VerticalAlignment.Top
|
|
112
|
-
FillDirection = Enum.FillDirection.Horizontal
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
pickers
|
|
116
|
-
}
|
|
111
|
+
Padding = UDim.new(0, 10),
|
|
112
|
+
HorizontalAlignment = Enum.HorizontalAlignment.Left,
|
|
113
|
+
VerticalAlignment = Enum.VerticalAlignment.Top,
|
|
114
|
+
FillDirection = Enum.FillDirection.Horizontal,
|
|
115
|
+
},
|
|
116
|
+
|
|
117
|
+
pickers,
|
|
118
|
+
}
|
|
117
119
|
end
|
|
118
120
|
|
|
119
121
|
local groups = {}
|
|
120
122
|
local current = {}
|
|
121
|
-
for i=1, #built do
|
|
123
|
+
for i = 1, #built do
|
|
122
124
|
table.insert(current, built[i])
|
|
123
125
|
if #current >= 4 then
|
|
124
126
|
table.insert(groups, pickerGroup(current))
|
|
@@ -131,11 +133,11 @@ function ColorPickerStoryUtils.create(maid, buildPickers)
|
|
|
131
133
|
end
|
|
132
134
|
|
|
133
135
|
return Blend.New "Frame" {
|
|
134
|
-
Size = UDim2.new(0, 0, 0, 0)
|
|
135
|
-
AnchorPoint = Vector2.new(0.5, 0.5)
|
|
136
|
-
Position = UDim2.fromScale(0.5, 0.5)
|
|
137
|
-
BackgroundTransparency = 1
|
|
138
|
-
AutomaticSize = Enum.AutomaticSize.XY
|
|
136
|
+
Size = UDim2.new(0, 0, 0, 0),
|
|
137
|
+
AnchorPoint = Vector2.new(0.5, 0.5),
|
|
138
|
+
Position = UDim2.fromScale(0.5, 0.5),
|
|
139
|
+
BackgroundTransparency = 1,
|
|
140
|
+
AutomaticSize = Enum.AutomaticSize.XY,
|
|
139
141
|
|
|
140
142
|
[Blend.OnEvent "InputBegan"] = function(inputObject, processed)
|
|
141
143
|
if processed then
|
|
@@ -145,17 +147,17 @@ function ColorPickerStoryUtils.create(maid, buildPickers)
|
|
|
145
147
|
if inputObject.UserInputType == Enum.UserInputType.MouseButton1 then
|
|
146
148
|
currentVisible.Value = nil
|
|
147
149
|
end
|
|
148
|
-
end
|
|
150
|
+
end,
|
|
149
151
|
|
|
150
152
|
Blend.New "UIListLayout" {
|
|
151
|
-
Padding = UDim.new(0, 10)
|
|
152
|
-
HorizontalAlignment = Enum.HorizontalAlignment.Center
|
|
153
|
-
VerticalAlignment = Enum.VerticalAlignment.Top
|
|
154
|
-
FillDirection = Enum.FillDirection.Vertical
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
groups
|
|
158
|
-
}
|
|
153
|
+
Padding = UDim.new(0, 10),
|
|
154
|
+
HorizontalAlignment = Enum.HorizontalAlignment.Center,
|
|
155
|
+
VerticalAlignment = Enum.VerticalAlignment.Top,
|
|
156
|
+
FillDirection = Enum.FillDirection.Vertical,
|
|
157
|
+
},
|
|
158
|
+
|
|
159
|
+
groups,
|
|
160
|
+
}
|
|
159
161
|
end
|
|
160
162
|
|
|
161
|
-
return ColorPickerStoryUtils
|
|
163
|
+
return ColorPickerStoryUtils
|