@quenty/adorneeutils 3.3.6 → 3.5.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 +8 -0
- package/package.json +5 -4
- package/src/Shared/AdorneeUtils.spec.lua +90 -87
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
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
|
+
# [3.5.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/adorneeutils@3.4.0...@quenty/adorneeutils@3.5.0) (2026-08-28)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @quenty/adorneeutils
|
|
9
|
+
|
|
10
|
+
# [3.4.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/adorneeutils@3.3.6...@quenty/adorneeutils@3.4.0) (2026-08-28)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @quenty/adorneeutils
|
|
13
|
+
|
|
6
14
|
## [3.3.6](https://github.com/Quenty/NevermoreEngine/compare/@quenty/adorneeutils@3.3.5...@quenty/adorneeutils@3.3.6) (2026-08-24)
|
|
7
15
|
|
|
8
16
|
### Bug Fixes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/adorneeutils",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"description": "AdorneeUtils - Generic adornee functions to make attaching to objects in Roblox easier.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -25,9 +25,10 @@
|
|
|
25
25
|
"preinstall": "npx only-allow pnpm"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
+
"@quenty/jestutils": "1.1.0",
|
|
28
29
|
"@quenty/loader": "10.11.1",
|
|
29
|
-
"@quenty/maid": "3.
|
|
30
|
-
"@quenty/nevermore-test-runner": "1.
|
|
30
|
+
"@quenty/maid": "3.12.0",
|
|
31
|
+
"@quenty/nevermore-test-runner": "1.6.0",
|
|
31
32
|
"@quentystudios/jest-lua": "3.10.0-quenty.2"
|
|
32
33
|
},
|
|
33
34
|
"contributors": [
|
|
@@ -36,5 +37,5 @@
|
|
|
36
37
|
"publishConfig": {
|
|
37
38
|
"access": "public"
|
|
38
39
|
},
|
|
39
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "346201e192e467cb71160f43029863853be855b5"
|
|
40
41
|
}
|
|
@@ -7,6 +7,7 @@ local require = require(script.Parent.loader).load(script)
|
|
|
7
7
|
|
|
8
8
|
local AdorneeUtils = require("AdorneeUtils")
|
|
9
9
|
local Jest = require("Jest")
|
|
10
|
+
local JestUtils = require("JestUtils")
|
|
10
11
|
local Maid = require("Maid")
|
|
11
12
|
|
|
12
13
|
local describe = Jest.Globals.describe
|
|
@@ -44,7 +45,7 @@ type Controller = {
|
|
|
44
45
|
newHandlelessTool: () -> (Tool, BasePart),
|
|
45
46
|
newAccessory: () -> (Accessory, BasePart),
|
|
46
47
|
newClothing: () -> (Clothing, BasePart),
|
|
47
|
-
|
|
48
|
+
Destroy: (self: Controller) -> (),
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
local function setup(): Controller
|
|
@@ -161,11 +162,13 @@ local function setup(): Controller
|
|
|
161
162
|
return clothing, part
|
|
162
163
|
end,
|
|
163
164
|
|
|
164
|
-
|
|
165
|
+
Destroy = function(_self)
|
|
165
166
|
maid:DoCleaning()
|
|
166
167
|
end,
|
|
167
168
|
}
|
|
168
169
|
|
|
170
|
+
maid:GiveTask(JestUtils.afterThis(controller))
|
|
171
|
+
|
|
169
172
|
return controller
|
|
170
173
|
end
|
|
171
174
|
|
|
@@ -176,7 +179,7 @@ describe("Tool inheriting from Model", function()
|
|
|
176
179
|
|
|
177
180
|
expect(tool:IsA("Model")).toEqual(true)
|
|
178
181
|
|
|
179
|
-
controller
|
|
182
|
+
controller:Destroy()
|
|
180
183
|
end)
|
|
181
184
|
|
|
182
185
|
it("adorns to the handle rather than the model bounding box", function()
|
|
@@ -189,7 +192,7 @@ describe("Tool inheriting from Model", function()
|
|
|
189
192
|
expect(AdorneeUtils.getAlignedSize(tool)).toEqual(handle.Size)
|
|
190
193
|
expect(AdorneeUtils.getRenderAdornee(tool)).toEqual(handle)
|
|
191
194
|
|
|
192
|
-
controller
|
|
195
|
+
controller:Destroy()
|
|
193
196
|
end)
|
|
194
197
|
|
|
195
198
|
it("does not fall back to another part when the tool has no handle", function()
|
|
@@ -202,7 +205,7 @@ describe("Tool inheriting from Model", function()
|
|
|
202
205
|
expect(AdorneeUtils.getAlignedSize(tool)).toBeNil()
|
|
203
206
|
expect(AdorneeUtils.getRenderAdornee(tool)).toBeNil()
|
|
204
207
|
|
|
205
|
-
controller
|
|
208
|
+
controller:Destroy()
|
|
206
209
|
end)
|
|
207
210
|
|
|
208
211
|
it("adorns to the handle even when the tool has a primary part", function()
|
|
@@ -212,7 +215,7 @@ describe("Tool inheriting from Model", function()
|
|
|
212
215
|
|
|
213
216
|
expect(AdorneeUtils.getPart(tool)).toEqual(handle)
|
|
214
217
|
|
|
215
|
-
controller
|
|
218
|
+
controller:Destroy()
|
|
216
219
|
end)
|
|
217
220
|
|
|
218
221
|
it("leaves plain models on the model path", function()
|
|
@@ -223,7 +226,7 @@ describe("Tool inheriting from Model", function()
|
|
|
223
226
|
expect(AdorneeUtils.getAlignedSize(model)).toEqual(MODEL_BOUNDING_BOX_SIZE)
|
|
224
227
|
expect(AdorneeUtils.getRenderAdornee(model)).toEqual(model)
|
|
225
228
|
|
|
226
|
-
controller
|
|
229
|
+
controller:Destroy()
|
|
227
230
|
end)
|
|
228
231
|
end)
|
|
229
232
|
|
|
@@ -234,7 +237,7 @@ describe("AdorneeUtils.getCenter", function()
|
|
|
234
237
|
|
|
235
238
|
expect(AdorneeUtils.getCenter(part)).toEqual(Vector3.new(1, 2, 3))
|
|
236
239
|
|
|
237
|
-
controller
|
|
240
|
+
controller:Destroy()
|
|
238
241
|
end)
|
|
239
242
|
|
|
240
243
|
it("returns the bounding box center of a model", function()
|
|
@@ -243,7 +246,7 @@ describe("AdorneeUtils.getCenter", function()
|
|
|
243
246
|
|
|
244
247
|
expect(AdorneeUtils.getCenter(model)).toEqual(MODEL_BOUNDING_BOX_CFRAME.Position)
|
|
245
248
|
|
|
246
|
-
controller
|
|
249
|
+
controller:Destroy()
|
|
247
250
|
end)
|
|
248
251
|
|
|
249
252
|
it("returns the world position of an attachment", function()
|
|
@@ -253,7 +256,7 @@ describe("AdorneeUtils.getCenter", function()
|
|
|
253
256
|
|
|
254
257
|
expect(AdorneeUtils.getCenter(attachment)).toEqual(Vector3.new(10, 1, 0))
|
|
255
258
|
|
|
256
|
-
controller
|
|
259
|
+
controller:Destroy()
|
|
257
260
|
end)
|
|
258
261
|
|
|
259
262
|
it("returns the root part position of a humanoid", function()
|
|
@@ -262,7 +265,7 @@ describe("AdorneeUtils.getCenter", function()
|
|
|
262
265
|
|
|
263
266
|
expect(AdorneeUtils.getCenter(humanoid)).toEqual(ROOT_PART_CFRAME.Position)
|
|
264
267
|
|
|
265
|
-
controller
|
|
268
|
+
controller:Destroy()
|
|
266
269
|
end)
|
|
267
270
|
|
|
268
271
|
it("returns nil for a humanoid with no root part", function()
|
|
@@ -271,7 +274,7 @@ describe("AdorneeUtils.getCenter", function()
|
|
|
271
274
|
|
|
272
275
|
expect(AdorneeUtils.getCenter(humanoid)).toBeNil()
|
|
273
276
|
|
|
274
|
-
controller
|
|
277
|
+
controller:Destroy()
|
|
275
278
|
end)
|
|
276
279
|
|
|
277
280
|
it("returns the handle position of an accessory", function()
|
|
@@ -280,7 +283,7 @@ describe("AdorneeUtils.getCenter", function()
|
|
|
280
283
|
|
|
281
284
|
expect(AdorneeUtils.getCenter(accessory)).toEqual(ACCESSORY_HANDLE_CFRAME.Position)
|
|
282
285
|
|
|
283
|
-
controller
|
|
286
|
+
controller:Destroy()
|
|
284
287
|
end)
|
|
285
288
|
|
|
286
289
|
it("returns nil for an accessory with no part", function()
|
|
@@ -290,7 +293,7 @@ describe("AdorneeUtils.getCenter", function()
|
|
|
290
293
|
expect(AdorneeUtils.getCenter(accessory)).toBeNil()
|
|
291
294
|
|
|
292
295
|
accessory:Destroy()
|
|
293
|
-
controller
|
|
296
|
+
controller:Destroy()
|
|
294
297
|
end)
|
|
295
298
|
|
|
296
299
|
it("returns the part position of clothing", function()
|
|
@@ -299,7 +302,7 @@ describe("AdorneeUtils.getCenter", function()
|
|
|
299
302
|
|
|
300
303
|
expect(AdorneeUtils.getCenter(clothing)).toEqual(CLOTHING_PART_CFRAME.Position)
|
|
301
304
|
|
|
302
|
-
controller
|
|
305
|
+
controller:Destroy()
|
|
303
306
|
end)
|
|
304
307
|
|
|
305
308
|
it("returns the handle position of a tool", function()
|
|
@@ -308,7 +311,7 @@ describe("AdorneeUtils.getCenter", function()
|
|
|
308
311
|
|
|
309
312
|
expect(AdorneeUtils.getCenter(tool)).toEqual(HANDLE_CFRAME.Position)
|
|
310
313
|
|
|
311
|
-
controller
|
|
314
|
+
controller:Destroy()
|
|
312
315
|
end)
|
|
313
316
|
|
|
314
317
|
it("returns nil when a tool's handle is not a base part", function()
|
|
@@ -321,7 +324,7 @@ describe("AdorneeUtils.getCenter", function()
|
|
|
321
324
|
|
|
322
325
|
expect(AdorneeUtils.getCenter(tool)).toBeNil()
|
|
323
326
|
|
|
324
|
-
controller
|
|
327
|
+
controller:Destroy()
|
|
325
328
|
end)
|
|
326
329
|
|
|
327
330
|
it("returns nil for an unsupported adornee", function()
|
|
@@ -330,7 +333,7 @@ describe("AdorneeUtils.getCenter", function()
|
|
|
330
333
|
|
|
331
334
|
expect(AdorneeUtils.getCenter(folder)).toBeNil()
|
|
332
335
|
|
|
333
|
-
controller
|
|
336
|
+
controller:Destroy()
|
|
334
337
|
end)
|
|
335
338
|
|
|
336
339
|
it("throws for a non-instance", function()
|
|
@@ -354,7 +357,7 @@ describe("AdorneeUtils.getBoundingBox", function()
|
|
|
354
357
|
expect(cframe).toEqual(MODEL_BOUNDING_BOX_CFRAME)
|
|
355
358
|
expect(size).toEqual(MODEL_BOUNDING_BOX_SIZE)
|
|
356
359
|
|
|
357
|
-
controller
|
|
360
|
+
controller:Destroy()
|
|
358
361
|
end)
|
|
359
362
|
|
|
360
363
|
it("returns a zero sized box at an attachment's world cframe", function()
|
|
@@ -367,7 +370,7 @@ describe("AdorneeUtils.getBoundingBox", function()
|
|
|
367
370
|
expect(cframe).toEqual(CFrame.new(10, 1, 0))
|
|
368
371
|
expect(size).toEqual(Vector3.zero)
|
|
369
372
|
|
|
370
|
-
controller
|
|
373
|
+
controller:Destroy()
|
|
371
374
|
end)
|
|
372
375
|
|
|
373
376
|
it("returns the cframe and size of a base part", function()
|
|
@@ -379,7 +382,7 @@ describe("AdorneeUtils.getBoundingBox", function()
|
|
|
379
382
|
expect(cframe).toEqual(CFrame.new(1, 2, 3))
|
|
380
383
|
expect(size).toEqual(Vector3.new(4, 1, 2))
|
|
381
384
|
|
|
382
|
-
controller
|
|
385
|
+
controller:Destroy()
|
|
383
386
|
end)
|
|
384
387
|
|
|
385
388
|
it("returns the handle box of a tool rather than its model bounding box", function()
|
|
@@ -396,7 +399,7 @@ describe("AdorneeUtils.getBoundingBox", function()
|
|
|
396
399
|
expect(cframe).toEqual(HANDLE_CFRAME)
|
|
397
400
|
expect(size).toEqual(HANDLE_SIZE)
|
|
398
401
|
|
|
399
|
-
controller
|
|
402
|
+
controller:Destroy()
|
|
400
403
|
end)
|
|
401
404
|
|
|
402
405
|
it("returns nil for a tool with no handle", function()
|
|
@@ -408,7 +411,7 @@ describe("AdorneeUtils.getBoundingBox", function()
|
|
|
408
411
|
expect(cframe).toBeNil()
|
|
409
412
|
expect(size).toBeNil()
|
|
410
413
|
|
|
411
|
-
controller
|
|
414
|
+
controller:Destroy()
|
|
412
415
|
end)
|
|
413
416
|
|
|
414
417
|
it("returns the root part cframe and the character size for a humanoid", function()
|
|
@@ -420,7 +423,7 @@ describe("AdorneeUtils.getBoundingBox", function()
|
|
|
420
423
|
expect(cframe).toEqual(ROOT_PART_CFRAME)
|
|
421
424
|
expect(size).toEqual(CHARACTER_BOUNDING_BOX_SIZE)
|
|
422
425
|
|
|
423
|
-
controller
|
|
426
|
+
controller:Destroy()
|
|
424
427
|
end)
|
|
425
428
|
|
|
426
429
|
it("returns nil for an unsupported adornee", function()
|
|
@@ -432,7 +435,7 @@ describe("AdorneeUtils.getBoundingBox", function()
|
|
|
432
435
|
expect(cframe).toBeNil()
|
|
433
436
|
expect(size).toBeNil()
|
|
434
437
|
|
|
435
|
-
controller
|
|
438
|
+
controller:Destroy()
|
|
436
439
|
end)
|
|
437
440
|
end)
|
|
438
441
|
|
|
@@ -443,7 +446,7 @@ describe("AdorneeUtils.isPartOfAdornee", function()
|
|
|
443
446
|
|
|
444
447
|
expect(AdorneeUtils.isPartOfAdornee(part, part)).toEqual(true)
|
|
445
448
|
|
|
446
|
-
controller
|
|
449
|
+
controller:Destroy()
|
|
447
450
|
end)
|
|
448
451
|
|
|
449
452
|
it("returns true for a descendant part", function()
|
|
@@ -452,7 +455,7 @@ describe("AdorneeUtils.isPartOfAdornee", function()
|
|
|
452
455
|
|
|
453
456
|
expect(AdorneeUtils.isPartOfAdornee(model, first)).toEqual(true)
|
|
454
457
|
|
|
455
|
-
controller
|
|
458
|
+
controller:Destroy()
|
|
456
459
|
end)
|
|
457
460
|
|
|
458
461
|
it("returns true for a deeply nested part", function()
|
|
@@ -467,7 +470,7 @@ describe("AdorneeUtils.isPartOfAdornee", function()
|
|
|
467
470
|
|
|
468
471
|
expect(AdorneeUtils.isPartOfAdornee(model, nested)).toEqual(true)
|
|
469
472
|
|
|
470
|
-
controller
|
|
473
|
+
controller:Destroy()
|
|
471
474
|
end)
|
|
472
475
|
|
|
473
476
|
it("returns false for an unrelated part", function()
|
|
@@ -477,7 +480,7 @@ describe("AdorneeUtils.isPartOfAdornee", function()
|
|
|
477
480
|
|
|
478
481
|
expect(AdorneeUtils.isPartOfAdornee(model, other)).toEqual(false)
|
|
479
482
|
|
|
480
|
-
controller
|
|
483
|
+
controller:Destroy()
|
|
481
484
|
end)
|
|
482
485
|
|
|
483
486
|
it("returns true for a part of the humanoid's character", function()
|
|
@@ -486,7 +489,7 @@ describe("AdorneeUtils.isPartOfAdornee", function()
|
|
|
486
489
|
|
|
487
490
|
expect(AdorneeUtils.isPartOfAdornee(humanoid, rootPart)).toEqual(true)
|
|
488
491
|
|
|
489
|
-
controller
|
|
492
|
+
controller:Destroy()
|
|
490
493
|
end)
|
|
491
494
|
|
|
492
495
|
it("returns false for a part outside the humanoid's character", function()
|
|
@@ -496,7 +499,7 @@ describe("AdorneeUtils.isPartOfAdornee", function()
|
|
|
496
499
|
|
|
497
500
|
expect(AdorneeUtils.isPartOfAdornee(humanoid, other)).toEqual(false)
|
|
498
501
|
|
|
499
|
-
controller
|
|
502
|
+
controller:Destroy()
|
|
500
503
|
end)
|
|
501
504
|
|
|
502
505
|
it("returns false for a humanoid with no parent", function()
|
|
@@ -506,7 +509,7 @@ describe("AdorneeUtils.isPartOfAdornee", function()
|
|
|
506
509
|
|
|
507
510
|
expect(AdorneeUtils.isPartOfAdornee(humanoid, part)).toEqual(false)
|
|
508
511
|
|
|
509
|
-
controller
|
|
512
|
+
controller:Destroy()
|
|
510
513
|
end)
|
|
511
514
|
|
|
512
515
|
it("returns true for the parts of a tool", function()
|
|
@@ -516,7 +519,7 @@ describe("AdorneeUtils.isPartOfAdornee", function()
|
|
|
516
519
|
expect(AdorneeUtils.isPartOfAdornee(tool, handle)).toEqual(true)
|
|
517
520
|
expect(AdorneeUtils.isPartOfAdornee(tool, blade)).toEqual(true)
|
|
518
521
|
|
|
519
|
-
controller
|
|
522
|
+
controller:Destroy()
|
|
520
523
|
end)
|
|
521
524
|
|
|
522
525
|
it("throws for a bad part", function()
|
|
@@ -532,7 +535,7 @@ describe("AdorneeUtils.isPartOfAdornee", function()
|
|
|
532
535
|
AdorneeUtils.isPartOfAdornee(part, folder :: any)
|
|
533
536
|
end).toThrow()
|
|
534
537
|
|
|
535
|
-
controller
|
|
538
|
+
controller:Destroy()
|
|
536
539
|
end)
|
|
537
540
|
end)
|
|
538
541
|
|
|
@@ -543,7 +546,7 @@ describe("AdorneeUtils.getParts", function()
|
|
|
543
546
|
|
|
544
547
|
expect(AdorneeUtils.getParts(part)).toEqual({ part })
|
|
545
548
|
|
|
546
|
-
controller
|
|
549
|
+
controller:Destroy()
|
|
547
550
|
end)
|
|
548
551
|
|
|
549
552
|
it("includes the descendants of a base part", function()
|
|
@@ -554,7 +557,7 @@ describe("AdorneeUtils.getParts", function()
|
|
|
554
557
|
|
|
555
558
|
expect(AdorneeUtils.getParts(part)).toEqual({ part, child })
|
|
556
559
|
|
|
557
|
-
controller
|
|
560
|
+
controller:Destroy()
|
|
558
561
|
end)
|
|
559
562
|
|
|
560
563
|
it("returns every part of a model", function()
|
|
@@ -563,7 +566,7 @@ describe("AdorneeUtils.getParts", function()
|
|
|
563
566
|
|
|
564
567
|
expect(AdorneeUtils.getParts(model)).toEqual({ first, second })
|
|
565
568
|
|
|
566
|
-
controller
|
|
569
|
+
controller:Destroy()
|
|
567
570
|
end)
|
|
568
571
|
|
|
569
572
|
it("returns the nested parts of a model", function()
|
|
@@ -578,7 +581,7 @@ describe("AdorneeUtils.getParts", function()
|
|
|
578
581
|
|
|
579
582
|
expect(AdorneeUtils.getParts(model)).toEqual({ nested })
|
|
580
583
|
|
|
581
|
-
controller
|
|
584
|
+
controller:Destroy()
|
|
582
585
|
end)
|
|
583
586
|
|
|
584
587
|
it("returns the character's parts for a humanoid", function()
|
|
@@ -590,7 +593,7 @@ describe("AdorneeUtils.getParts", function()
|
|
|
590
593
|
expect(#parts).toEqual(2)
|
|
591
594
|
expect(parts[1]).toEqual(rootPart)
|
|
592
595
|
|
|
593
|
-
controller
|
|
596
|
+
controller:Destroy()
|
|
594
597
|
end)
|
|
595
598
|
|
|
596
599
|
it("returns an empty list for a humanoid with no parent", function()
|
|
@@ -599,7 +602,7 @@ describe("AdorneeUtils.getParts", function()
|
|
|
599
602
|
|
|
600
603
|
expect(AdorneeUtils.getParts(humanoid)).toEqual({})
|
|
601
604
|
|
|
602
|
-
controller
|
|
605
|
+
controller:Destroy()
|
|
603
606
|
end)
|
|
604
607
|
|
|
605
608
|
it("returns every part of a tool", function()
|
|
@@ -608,7 +611,7 @@ describe("AdorneeUtils.getParts", function()
|
|
|
608
611
|
|
|
609
612
|
expect(AdorneeUtils.getParts(tool)).toEqual({ blade, handle })
|
|
610
613
|
|
|
611
|
-
controller
|
|
614
|
+
controller:Destroy()
|
|
612
615
|
end)
|
|
613
616
|
|
|
614
617
|
it("returns an empty list for an adornee with no parts", function()
|
|
@@ -617,7 +620,7 @@ describe("AdorneeUtils.getParts", function()
|
|
|
617
620
|
|
|
618
621
|
expect(AdorneeUtils.getParts(folder)).toEqual({})
|
|
619
622
|
|
|
620
|
-
controller
|
|
623
|
+
controller:Destroy()
|
|
621
624
|
end)
|
|
622
625
|
|
|
623
626
|
it("throws for a non-instance", function()
|
|
@@ -634,7 +637,7 @@ describe("AdorneeUtils.getAlignedSize", function()
|
|
|
634
637
|
|
|
635
638
|
expect(AdorneeUtils.getAlignedSize(model)).toEqual(MODEL_BOUNDING_BOX_SIZE)
|
|
636
639
|
|
|
637
|
-
controller
|
|
640
|
+
controller:Destroy()
|
|
638
641
|
end)
|
|
639
642
|
|
|
640
643
|
it("returns the character bounding box size for a humanoid", function()
|
|
@@ -643,7 +646,7 @@ describe("AdorneeUtils.getAlignedSize", function()
|
|
|
643
646
|
|
|
644
647
|
expect(AdorneeUtils.getAlignedSize(humanoid)).toEqual(CHARACTER_BOUNDING_BOX_SIZE)
|
|
645
648
|
|
|
646
|
-
controller
|
|
649
|
+
controller:Destroy()
|
|
647
650
|
end)
|
|
648
651
|
|
|
649
652
|
it("returns nil for a humanoid whose parent is not a model", function()
|
|
@@ -653,7 +656,7 @@ describe("AdorneeUtils.getAlignedSize", function()
|
|
|
653
656
|
|
|
654
657
|
expect(AdorneeUtils.getAlignedSize(humanoid)).toBeNil()
|
|
655
658
|
|
|
656
|
-
controller
|
|
659
|
+
controller:Destroy()
|
|
657
660
|
end)
|
|
658
661
|
|
|
659
662
|
it("returns nil for a humanoid with no parent", function()
|
|
@@ -662,7 +665,7 @@ describe("AdorneeUtils.getAlignedSize", function()
|
|
|
662
665
|
|
|
663
666
|
expect(AdorneeUtils.getAlignedSize(humanoid)).toBeNil()
|
|
664
667
|
|
|
665
|
-
controller
|
|
668
|
+
controller:Destroy()
|
|
666
669
|
end)
|
|
667
670
|
|
|
668
671
|
it("returns the size of a base part", function()
|
|
@@ -671,7 +674,7 @@ describe("AdorneeUtils.getAlignedSize", function()
|
|
|
671
674
|
|
|
672
675
|
expect(AdorneeUtils.getAlignedSize(part)).toEqual(Vector3.new(4, 1, 2))
|
|
673
676
|
|
|
674
|
-
controller
|
|
677
|
+
controller:Destroy()
|
|
675
678
|
end)
|
|
676
679
|
|
|
677
680
|
it("returns the ancestor part size for an attachment", function()
|
|
@@ -681,7 +684,7 @@ describe("AdorneeUtils.getAlignedSize", function()
|
|
|
681
684
|
|
|
682
685
|
expect(AdorneeUtils.getAlignedSize(attachment)).toEqual(Vector3.new(4, 1, 2))
|
|
683
686
|
|
|
684
|
-
controller
|
|
687
|
+
controller:Destroy()
|
|
685
688
|
end)
|
|
686
689
|
|
|
687
690
|
it("returns the handle size of a tool", function()
|
|
@@ -690,7 +693,7 @@ describe("AdorneeUtils.getAlignedSize", function()
|
|
|
690
693
|
|
|
691
694
|
expect(AdorneeUtils.getAlignedSize(tool)).toEqual(HANDLE_SIZE)
|
|
692
695
|
|
|
693
|
-
controller
|
|
696
|
+
controller:Destroy()
|
|
694
697
|
end)
|
|
695
698
|
|
|
696
699
|
it("returns nil for a tool with no handle", function()
|
|
@@ -699,7 +702,7 @@ describe("AdorneeUtils.getAlignedSize", function()
|
|
|
699
702
|
|
|
700
703
|
expect(AdorneeUtils.getAlignedSize(tool)).toBeNil()
|
|
701
704
|
|
|
702
|
-
controller
|
|
705
|
+
controller:Destroy()
|
|
703
706
|
end)
|
|
704
707
|
|
|
705
708
|
it("returns nil for an unsupported adornee", function()
|
|
@@ -708,7 +711,7 @@ describe("AdorneeUtils.getAlignedSize", function()
|
|
|
708
711
|
|
|
709
712
|
expect(AdorneeUtils.getAlignedSize(folder)).toBeNil()
|
|
710
713
|
|
|
711
|
-
controller
|
|
714
|
+
controller:Destroy()
|
|
712
715
|
end)
|
|
713
716
|
end)
|
|
714
717
|
|
|
@@ -719,7 +722,7 @@ describe("AdorneeUtils.getPartCFrame", function()
|
|
|
719
722
|
|
|
720
723
|
expect(AdorneeUtils.getPartCFrame(part)).toEqual(CFrame.new(1, 2, 3))
|
|
721
724
|
|
|
722
|
-
controller
|
|
725
|
+
controller:Destroy()
|
|
723
726
|
end)
|
|
724
727
|
|
|
725
728
|
it("returns the handle cframe of a tool", function()
|
|
@@ -728,7 +731,7 @@ describe("AdorneeUtils.getPartCFrame", function()
|
|
|
728
731
|
|
|
729
732
|
expect(AdorneeUtils.getPartCFrame(tool)).toEqual(HANDLE_CFRAME)
|
|
730
733
|
|
|
731
|
-
controller
|
|
734
|
+
controller:Destroy()
|
|
732
735
|
end)
|
|
733
736
|
|
|
734
737
|
it("returns the root part cframe of a humanoid", function()
|
|
@@ -737,7 +740,7 @@ describe("AdorneeUtils.getPartCFrame", function()
|
|
|
737
740
|
|
|
738
741
|
expect(AdorneeUtils.getPartCFrame(humanoid)).toEqual(ROOT_PART_CFRAME)
|
|
739
742
|
|
|
740
|
-
controller
|
|
743
|
+
controller:Destroy()
|
|
741
744
|
end)
|
|
742
745
|
|
|
743
746
|
it("returns nil for an adornee with no part", function()
|
|
@@ -746,7 +749,7 @@ describe("AdorneeUtils.getPartCFrame", function()
|
|
|
746
749
|
|
|
747
750
|
expect(AdorneeUtils.getPartCFrame(folder)).toBeNil()
|
|
748
751
|
|
|
749
|
-
controller
|
|
752
|
+
controller:Destroy()
|
|
750
753
|
end)
|
|
751
754
|
|
|
752
755
|
it("throws for a non-instance", function()
|
|
@@ -763,7 +766,7 @@ describe("AdorneeUtils.getPartPosition", function()
|
|
|
763
766
|
|
|
764
767
|
expect(AdorneeUtils.getPartPosition(part)).toEqual(Vector3.new(1, 2, 3))
|
|
765
768
|
|
|
766
|
-
controller
|
|
769
|
+
controller:Destroy()
|
|
767
770
|
end)
|
|
768
771
|
|
|
769
772
|
it("returns the primary part position of a model", function()
|
|
@@ -773,7 +776,7 @@ describe("AdorneeUtils.getPartPosition", function()
|
|
|
773
776
|
|
|
774
777
|
expect(AdorneeUtils.getPartPosition(model)).toEqual(second.Position)
|
|
775
778
|
|
|
776
|
-
controller
|
|
779
|
+
controller:Destroy()
|
|
777
780
|
end)
|
|
778
781
|
|
|
779
782
|
it("returns the root part position of a humanoid", function()
|
|
@@ -782,7 +785,7 @@ describe("AdorneeUtils.getPartPosition", function()
|
|
|
782
785
|
|
|
783
786
|
expect(AdorneeUtils.getPartPosition(humanoid)).toEqual(ROOT_PART_CFRAME.Position)
|
|
784
787
|
|
|
785
|
-
controller
|
|
788
|
+
controller:Destroy()
|
|
786
789
|
end)
|
|
787
790
|
|
|
788
791
|
it("returns nil for an adornee with no part", function()
|
|
@@ -791,7 +794,7 @@ describe("AdorneeUtils.getPartPosition", function()
|
|
|
791
794
|
|
|
792
795
|
expect(AdorneeUtils.getPartPosition(folder)).toBeNil()
|
|
793
796
|
|
|
794
|
-
controller
|
|
797
|
+
controller:Destroy()
|
|
795
798
|
end)
|
|
796
799
|
|
|
797
800
|
it("throws for a non-instance", function()
|
|
@@ -810,7 +813,7 @@ describe("AdorneeUtils.getPartVelocity", function()
|
|
|
810
813
|
|
|
811
814
|
expect(AdorneeUtils.getPartVelocity(part)).toEqual(Vector3.new(1, 2, 3))
|
|
812
815
|
|
|
813
|
-
controller
|
|
816
|
+
controller:Destroy()
|
|
814
817
|
end)
|
|
815
818
|
|
|
816
819
|
it("returns zero for an anchored part", function()
|
|
@@ -819,7 +822,7 @@ describe("AdorneeUtils.getPartVelocity", function()
|
|
|
819
822
|
|
|
820
823
|
expect(AdorneeUtils.getPartVelocity(part)).toEqual(Vector3.zero)
|
|
821
824
|
|
|
822
|
-
controller
|
|
825
|
+
controller:Destroy()
|
|
823
826
|
end)
|
|
824
827
|
|
|
825
828
|
it("returns the handle velocity of a tool", function()
|
|
@@ -830,7 +833,7 @@ describe("AdorneeUtils.getPartVelocity", function()
|
|
|
830
833
|
|
|
831
834
|
expect(AdorneeUtils.getPartVelocity(tool)).toEqual(Vector3.new(0, 5, 0))
|
|
832
835
|
|
|
833
|
-
controller
|
|
836
|
+
controller:Destroy()
|
|
834
837
|
end)
|
|
835
838
|
|
|
836
839
|
it("returns nil for an adornee with no part", function()
|
|
@@ -839,7 +842,7 @@ describe("AdorneeUtils.getPartVelocity", function()
|
|
|
839
842
|
|
|
840
843
|
expect(AdorneeUtils.getPartVelocity(folder)).toBeNil()
|
|
841
844
|
|
|
842
|
-
controller
|
|
845
|
+
controller:Destroy()
|
|
843
846
|
end)
|
|
844
847
|
end)
|
|
845
848
|
|
|
@@ -850,7 +853,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
850
853
|
|
|
851
854
|
expect(AdorneeUtils.getPart(part)).toEqual(part)
|
|
852
855
|
|
|
853
|
-
controller
|
|
856
|
+
controller:Destroy()
|
|
854
857
|
end)
|
|
855
858
|
|
|
856
859
|
it("returns a model's primary part", function()
|
|
@@ -860,7 +863,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
860
863
|
|
|
861
864
|
expect(AdorneeUtils.getPart(model)).toEqual(second)
|
|
862
865
|
|
|
863
|
-
controller
|
|
866
|
+
controller:Destroy()
|
|
864
867
|
end)
|
|
865
868
|
|
|
866
869
|
it("returns a model's first base part when there is no primary part", function()
|
|
@@ -869,7 +872,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
869
872
|
|
|
870
873
|
expect(AdorneeUtils.getPart(model)).toEqual(first)
|
|
871
874
|
|
|
872
|
-
controller
|
|
875
|
+
controller:Destroy()
|
|
873
876
|
end)
|
|
874
877
|
|
|
875
878
|
it("returns nil for a model with no parts", function()
|
|
@@ -878,7 +881,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
878
881
|
|
|
879
882
|
expect(AdorneeUtils.getPart(model)).toBeNil()
|
|
880
883
|
|
|
881
|
-
controller
|
|
884
|
+
controller:Destroy()
|
|
882
885
|
end)
|
|
883
886
|
|
|
884
887
|
it("returns nil for a model whose parts are not direct children", function()
|
|
@@ -893,7 +896,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
893
896
|
|
|
894
897
|
expect(AdorneeUtils.getPart(model)).toBeNil()
|
|
895
898
|
|
|
896
|
-
controller
|
|
899
|
+
controller:Destroy()
|
|
897
900
|
end)
|
|
898
901
|
|
|
899
902
|
it("returns the ancestor part of an attachment", function()
|
|
@@ -903,7 +906,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
903
906
|
|
|
904
907
|
expect(AdorneeUtils.getPart(attachment)).toEqual(part)
|
|
905
908
|
|
|
906
|
-
controller
|
|
909
|
+
controller:Destroy()
|
|
907
910
|
end)
|
|
908
911
|
|
|
909
912
|
it("returns nil for an attachment with no ancestor part", function()
|
|
@@ -913,7 +916,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
913
916
|
|
|
914
917
|
expect(AdorneeUtils.getPart(attachment)).toBeNil()
|
|
915
918
|
|
|
916
|
-
controller
|
|
919
|
+
controller:Destroy()
|
|
917
920
|
end)
|
|
918
921
|
|
|
919
922
|
it("returns the root part of a humanoid", function()
|
|
@@ -922,7 +925,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
922
925
|
|
|
923
926
|
expect(AdorneeUtils.getPart(humanoid)).toEqual(rootPart)
|
|
924
927
|
|
|
925
|
-
controller
|
|
928
|
+
controller:Destroy()
|
|
926
929
|
end)
|
|
927
930
|
|
|
928
931
|
it("returns nil for a humanoid with no root part", function()
|
|
@@ -931,7 +934,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
931
934
|
|
|
932
935
|
expect(AdorneeUtils.getPart(humanoid)).toBeNil()
|
|
933
936
|
|
|
934
|
-
controller
|
|
937
|
+
controller:Destroy()
|
|
935
938
|
end)
|
|
936
939
|
|
|
937
940
|
it("returns the handle of an accessory", function()
|
|
@@ -940,7 +943,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
940
943
|
|
|
941
944
|
expect(AdorneeUtils.getPart(accessory)).toEqual(handle)
|
|
942
945
|
|
|
943
|
-
controller
|
|
946
|
+
controller:Destroy()
|
|
944
947
|
end)
|
|
945
948
|
|
|
946
949
|
it("returns the part of clothing", function()
|
|
@@ -949,7 +952,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
949
952
|
|
|
950
953
|
expect(AdorneeUtils.getPart(clothing)).toEqual(part)
|
|
951
954
|
|
|
952
|
-
controller
|
|
955
|
+
controller:Destroy()
|
|
953
956
|
end)
|
|
954
957
|
|
|
955
958
|
it("returns the handle of a tool ahead of any other part", function()
|
|
@@ -958,7 +961,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
958
961
|
|
|
959
962
|
expect(AdorneeUtils.getPart(tool)).toEqual(handle)
|
|
960
963
|
|
|
961
|
-
controller
|
|
964
|
+
controller:Destroy()
|
|
962
965
|
end)
|
|
963
966
|
|
|
964
967
|
it("returns nil for a tool with no handle", function()
|
|
@@ -967,7 +970,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
967
970
|
|
|
968
971
|
expect(AdorneeUtils.getPart(tool)).toBeNil()
|
|
969
972
|
|
|
970
|
-
controller
|
|
973
|
+
controller:Destroy()
|
|
971
974
|
end)
|
|
972
975
|
|
|
973
976
|
it("returns nil for an unsupported adornee", function()
|
|
@@ -976,7 +979,7 @@ describe("AdorneeUtils.getPart", function()
|
|
|
976
979
|
|
|
977
980
|
expect(AdorneeUtils.getPart(folder)).toBeNil()
|
|
978
981
|
|
|
979
|
-
controller
|
|
982
|
+
controller:Destroy()
|
|
980
983
|
end)
|
|
981
984
|
|
|
982
985
|
it("throws for a non-instance", function()
|
|
@@ -993,7 +996,7 @@ describe("AdorneeUtils.getRenderAdornee", function()
|
|
|
993
996
|
|
|
994
997
|
expect(AdorneeUtils.getRenderAdornee(part)).toEqual(part)
|
|
995
998
|
|
|
996
|
-
controller
|
|
999
|
+
controller:Destroy()
|
|
997
1000
|
end)
|
|
998
1001
|
|
|
999
1002
|
it("returns a model itself", function()
|
|
@@ -1002,7 +1005,7 @@ describe("AdorneeUtils.getRenderAdornee", function()
|
|
|
1002
1005
|
|
|
1003
1006
|
expect(AdorneeUtils.getRenderAdornee(model)).toEqual(model)
|
|
1004
1007
|
|
|
1005
|
-
controller
|
|
1008
|
+
controller:Destroy()
|
|
1006
1009
|
end)
|
|
1007
1010
|
|
|
1008
1011
|
it("returns an attachment itself", function()
|
|
@@ -1012,7 +1015,7 @@ describe("AdorneeUtils.getRenderAdornee", function()
|
|
|
1012
1015
|
|
|
1013
1016
|
expect(AdorneeUtils.getRenderAdornee(attachment)).toEqual(attachment)
|
|
1014
1017
|
|
|
1015
|
-
controller
|
|
1018
|
+
controller:Destroy()
|
|
1016
1019
|
end)
|
|
1017
1020
|
|
|
1018
1021
|
it("returns the character of a humanoid", function()
|
|
@@ -1021,7 +1024,7 @@ describe("AdorneeUtils.getRenderAdornee", function()
|
|
|
1021
1024
|
|
|
1022
1025
|
expect(AdorneeUtils.getRenderAdornee(humanoid)).toEqual(character)
|
|
1023
1026
|
|
|
1024
|
-
controller
|
|
1027
|
+
controller:Destroy()
|
|
1025
1028
|
end)
|
|
1026
1029
|
|
|
1027
1030
|
it("returns nil for a humanoid with no parent", function()
|
|
@@ -1030,7 +1033,7 @@ describe("AdorneeUtils.getRenderAdornee", function()
|
|
|
1030
1033
|
|
|
1031
1034
|
expect(AdorneeUtils.getRenderAdornee(humanoid)).toBeNil()
|
|
1032
1035
|
|
|
1033
|
-
controller
|
|
1036
|
+
controller:Destroy()
|
|
1034
1037
|
end)
|
|
1035
1038
|
|
|
1036
1039
|
it("returns the handle of an accessory", function()
|
|
@@ -1039,7 +1042,7 @@ describe("AdorneeUtils.getRenderAdornee", function()
|
|
|
1039
1042
|
|
|
1040
1043
|
expect(AdorneeUtils.getRenderAdornee(accessory)).toEqual(handle)
|
|
1041
1044
|
|
|
1042
|
-
controller
|
|
1045
|
+
controller:Destroy()
|
|
1043
1046
|
end)
|
|
1044
1047
|
|
|
1045
1048
|
it("returns the part of clothing", function()
|
|
@@ -1048,7 +1051,7 @@ describe("AdorneeUtils.getRenderAdornee", function()
|
|
|
1048
1051
|
|
|
1049
1052
|
expect(AdorneeUtils.getRenderAdornee(clothing)).toEqual(part)
|
|
1050
1053
|
|
|
1051
|
-
controller
|
|
1054
|
+
controller:Destroy()
|
|
1052
1055
|
end)
|
|
1053
1056
|
|
|
1054
1057
|
it("returns the handle of a tool rather than the tool", function()
|
|
@@ -1057,7 +1060,7 @@ describe("AdorneeUtils.getRenderAdornee", function()
|
|
|
1057
1060
|
|
|
1058
1061
|
expect(AdorneeUtils.getRenderAdornee(tool)).toEqual(handle)
|
|
1059
1062
|
|
|
1060
|
-
controller
|
|
1063
|
+
controller:Destroy()
|
|
1061
1064
|
end)
|
|
1062
1065
|
|
|
1063
1066
|
it("returns nil for a tool with no handle", function()
|
|
@@ -1066,7 +1069,7 @@ describe("AdorneeUtils.getRenderAdornee", function()
|
|
|
1066
1069
|
|
|
1067
1070
|
expect(AdorneeUtils.getRenderAdornee(tool)).toBeNil()
|
|
1068
1071
|
|
|
1069
|
-
controller
|
|
1072
|
+
controller:Destroy()
|
|
1070
1073
|
end)
|
|
1071
1074
|
|
|
1072
1075
|
it("returns nil for an unsupported adornee", function()
|
|
@@ -1075,7 +1078,7 @@ describe("AdorneeUtils.getRenderAdornee", function()
|
|
|
1075
1078
|
|
|
1076
1079
|
expect(AdorneeUtils.getRenderAdornee(folder)).toBeNil()
|
|
1077
1080
|
|
|
1078
|
-
controller
|
|
1081
|
+
controller:Destroy()
|
|
1079
1082
|
end)
|
|
1080
1083
|
|
|
1081
1084
|
it("throws for a non-instance", function()
|