@quenty/genericscreenguiprovider 13.17.0 → 13.18.0-canary.527.65d09e1.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 CHANGED
@@ -3,6 +3,17 @@
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
+ # [13.18.0-canary.527.65d09e1.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/genericscreenguiprovider@13.17.0...@quenty/genericscreenguiprovider@13.18.0-canary.527.65d09e1.0) (2025-01-17)
7
+
8
+
9
+ ### Features
10
+
11
+ * Allow order t obe set ([7edc784](https://github.com/Quenty/NevermoreEngine/commit/7edc784fa0983895fc9260adaf73a8e5012144fa))
12
+
13
+
14
+
15
+
16
+
6
17
  # [13.17.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/genericscreenguiprovider@13.16.0...@quenty/genericscreenguiprovider@13.17.0) (2024-12-15)
7
18
 
8
19
  **Note:** Version bump only for package @quenty/genericscreenguiprovider
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/genericscreenguiprovider",
3
- "version": "13.17.0",
3
+ "version": "13.18.0-canary.527.65d09e1.0",
4
4
  "description": "Providers screenGuis with a given display order for easy use",
5
5
  "keywords": [
6
6
  "Roblox",
@@ -24,16 +24,17 @@
24
24
  "Quenty"
25
25
  ],
26
26
  "dependencies": {
27
- "@quenty/blend": "^12.15.0",
28
- "@quenty/loader": "^10.7.1",
29
- "@quenty/maid": "^3.4.0",
30
- "@quenty/servicebag": "^11.10.0",
31
- "@quenty/string": "^3.3.0",
32
- "@quenty/uiobjectutils": "^6.14.0",
33
- "@quenty/valueobject": "^13.15.0"
27
+ "@quenty/blend": "12.16.0-canary.527.65d09e1.0",
28
+ "@quenty/loader": "10.7.1",
29
+ "@quenty/maid": "3.4.0",
30
+ "@quenty/rx": "13.15.0",
31
+ "@quenty/servicebag": "11.10.0",
32
+ "@quenty/string": "3.3.0",
33
+ "@quenty/uiobjectutils": "6.14.0",
34
+ "@quenty/valueobject": "13.15.0"
34
35
  },
35
36
  "publishConfig": {
36
37
  "access": "public"
37
38
  },
38
- "gitHead": "0a20ace4dc7d38f8c889bf73b716b33e8a767c54"
39
+ "gitHead": "65d09e10d2b3519746fd1bcd592425cd985dbaf6"
39
40
  }
@@ -32,6 +32,7 @@ local Maid = require("Maid")
32
32
  local ScreenGuiService = require("ScreenGuiService")
33
33
  local ServiceBag = require("ServiceBag")
34
34
  local String = require("String")
35
+ local ValueObject = require("ValueObject")
35
36
 
36
37
  local GenericScreenGuiProvider = {}
37
38
  GenericScreenGuiProvider.ClassName = "GenericScreenGuiProvider"
@@ -46,7 +47,7 @@ function GenericScreenGuiProvider.new(orders)
46
47
  assert(type(orders) == "table", "Bad orders")
47
48
 
48
49
  local self = setmetatable({
49
- _order = orders;
50
+ _defaultOrders = orders;
50
51
  }, GenericScreenGuiProvider)
51
52
 
52
53
  return self
@@ -57,6 +58,11 @@ function GenericScreenGuiProvider:Init(serviceBag)
57
58
  self._maid = Maid.new()
58
59
 
59
60
  self._screenGuiService = self._serviceBag:GetService(ScreenGuiService)
61
+
62
+ self._orderValues = {}
63
+ for key, value in self._defaultOrders do
64
+ self._orderValues[key] = self._maid:Add(ValueObject.new(value, "number"))
65
+ end
60
66
  end
61
67
 
62
68
  function GenericScreenGuiProvider:Start()
@@ -107,12 +113,19 @@ function GenericScreenGuiProvider:ObserveScreenGui(orderName)
107
113
  Name = String.toCamelCase(orderName);
108
114
  ResetOnSpawn = false;
109
115
  AutoLocalize = false;
110
- DisplayOrder = self:GetDisplayOrder(orderName);
116
+ DisplayOrder = self:ObserveDisplayOrder(orderName);
111
117
  Parent = self:_getScreenGuiService():ObservePlayerGui();
112
118
  ZIndexBehavior = Enum.ZIndexBehavior.Sibling;
113
119
  }
114
120
  end
115
121
 
122
+ function GenericScreenGuiProvider:SetDisplayOrder(orderName, order)
123
+ assert(type(orderName) == "string", "Bad orderName")
124
+ self:_assertOrderExists(orderName)
125
+
126
+ return self._orderValues[orderName]:Mount(order)
127
+ end
128
+
116
129
  --[=[
117
130
  Returns a new ScreenGui at DisplayOrder specified
118
131
  @param orderName string -- Order name of display order
@@ -120,6 +133,7 @@ end
120
133
  ]=]
121
134
  function GenericScreenGuiProvider:Get(orderName)
122
135
  assert(type(orderName) == "string", "Bad orderName")
136
+ self:_assertOrderExists(orderName)
123
137
 
124
138
  if not RunService:IsRunning() then
125
139
  local frame = Instance.new("Frame")
@@ -152,9 +166,29 @@ end
152
166
  ]=]
153
167
  function GenericScreenGuiProvider:GetDisplayOrder(orderName)
154
168
  assert(type(orderName) == "string", "Bad orderName")
155
- assert(self._order[orderName], string.format("No DisplayOrder with orderName '%s'", tostring(orderName)))
169
+ self:_assertOrderExists(orderName)
170
+
171
+ return self._orderValues[orderName].Value
172
+ end
156
173
 
157
- return self._order[orderName]
174
+ --[=[
175
+ Retrieve the display order for a given order.
176
+ @param orderName string -- Order name of display order
177
+ @return Observable<number>
178
+ ]=]
179
+ function GenericScreenGuiProvider:ObserveDisplayOrder(orderName)
180
+ assert(type(orderName) == "string", "Bad orderName")
181
+ self:_assertOrderExists(orderName)
182
+
183
+ return self._orderValues[orderName]:Observe()
184
+ end
185
+
186
+ function GenericScreenGuiProvider:_assertOrderExists(orderName)
187
+ assert(type(orderName) == "string", "Bad orderName")
188
+
189
+ if not self._defaultOrders[orderName] then
190
+ error(string.format("No DisplayOrder with orderName '%s'", tostring(orderName)))
191
+ end
158
192
  end
159
193
 
160
194
  function GenericScreenGuiProvider:_getScreenGuiService()