@@ -454,7 +454,7 @@ declare buffer: {
454
454
455
455
)BUILTIN_SRC" ;
456
456
457
- static const std::string kBuiltinDefinitionVectorSrc_DEPRECATED = R"BUILTIN_SRC(
457
+ static const std::string kBuiltinDefinitionVectorSrc_NoExtra_NoVector2Ctor_DEPRECATED = R"BUILTIN_SRC(
458
458
459
459
-- TODO: this will be replaced with a built-in primitive type
460
460
declare class vector end
@@ -480,7 +480,33 @@ declare vector: {
480
480
481
481
)BUILTIN_SRC" ;
482
482
483
- static const std::string kBuiltinDefinitionVectorSrc = R"BUILTIN_SRC(
483
+ static const std::string kBuiltinDefinitionVectorSrc_NoExtra_DEPRECATED = R"BUILTIN_SRC(
484
+
485
+ -- TODO: this will be replaced with a built-in primitive type
486
+ declare class vector end
487
+
488
+ declare vector: {
489
+ create: @checked (x: number, y: number, z: number?) -> vector,
490
+ magnitude: @checked (vec: vector) -> number,
491
+ normalize: @checked (vec: vector) -> vector,
492
+ cross: @checked (vec1: vector, vec2: vector) -> vector,
493
+ dot: @checked (vec1: vector, vec2: vector) -> number,
494
+ angle: @checked (vec1: vector, vec2: vector, axis: vector?) -> number,
495
+ floor: @checked (vec: vector) -> vector,
496
+ ceil: @checked (vec: vector) -> vector,
497
+ abs: @checked (vec: vector) -> vector,
498
+ sign: @checked (vec: vector) -> vector,
499
+ clamp: @checked (vec: vector, min: vector, max: vector) -> vector,
500
+ max: @checked (vector, ...vector) -> vector,
501
+ min: @checked (vector, ...vector) -> vector,
502
+
503
+ zero: vector,
504
+ one: vector,
505
+ }
506
+
507
+ )BUILTIN_SRC" ;
508
+
509
+ static const std::string kBuiltinDefinitionVectorSrc_NoVector2Ctor_DEPRECATED = R"BUILTIN_SRC(
484
510
485
511
-- While vector would have been better represented as a built-in primitive type, type solver class handling covers most of the properties
486
512
declare class vector
@@ -510,26 +536,48 @@ declare vector: {
510
536
511
537
)BUILTIN_SRC" ;
512
538
539
+ static const std::string kBuiltinDefinitionVectorSrc = R"BUILTIN_SRC(
540
+
541
+ -- While vector would have been better represented as a built-in primitive type, type solver class handling covers most of the properties
542
+ declare class vector
543
+ x: number
544
+ y: number
545
+ z: number
546
+ end
547
+
548
+ declare vector: {
549
+ create: @checked (x: number, y: number, z: number?) -> vector,
550
+ magnitude: @checked (vec: vector) -> number,
551
+ normalize: @checked (vec: vector) -> vector,
552
+ cross: @checked (vec1: vector, vec2: vector) -> vector,
553
+ dot: @checked (vec1: vector, vec2: vector) -> number,
554
+ angle: @checked (vec1: vector, vec2: vector, axis: vector?) -> number,
555
+ floor: @checked (vec: vector) -> vector,
556
+ ceil: @checked (vec: vector) -> vector,
557
+ abs: @checked (vec: vector) -> vector,
558
+ sign: @checked (vec: vector) -> vector,
559
+ clamp: @checked (vec: vector, min: vector, max: vector) -> vector,
560
+ max: @checked (vector, ...vector) -> vector,
561
+ min: @checked (vector, ...vector) -> vector,
562
+
563
+ zero: vector,
564
+ one: vector,
565
+ }
566
+
567
+ )BUILTIN_SRC" ;
568
+
513
569
std::string getBuiltinDefinitionSource ()
514
570
{
515
571
std::string result = FFlag::LuauMathMap ? kBuiltinDefinitionLuaSrcChecked : kBuiltinDefinitionLuaSrcChecked_DEPRECATED ;
516
572
517
- std::string vectorSrc;
518
- if (FFlag::LuauVectorDefinitionsExtra)
519
- vectorSrc = kBuiltinDefinitionVectorSrc ;
520
- else if (FFlag::LuauVectorDefinitions)
521
- vectorSrc = kBuiltinDefinitionVectorSrc_DEPRECATED ;
522
-
523
- if (FFlag::LuauVector2Constructor && !vectorSrc.empty ())
524
- {
525
- std::string what = " create: @checked (x: number, y: number, z: number) -> vector" ;
526
- std::string replacement = " create: @checked (x: number, y: number, z: number?) -> vector" ;
527
- std::string::size_type pos = vectorSrc.find (what);
528
- LUAU_ASSERT (pos != std::string::npos);
529
- vectorSrc.replace (pos, what.size (), replacement);
530
- }
531
-
532
- result += vectorSrc;
573
+ if (FFlag::LuauVectorDefinitionsExtra && FFlag::LuauVector2Constructor)
574
+ result += kBuiltinDefinitionVectorSrc ;
575
+ else if (FFlag::LuauVectorDefinitionsExtra && !FFlag::LuauVector2Constructor)
576
+ result += kBuiltinDefinitionVectorSrc_NoVector2Ctor_DEPRECATED ;
577
+ else if (FFlag::LuauVectorDefinitions && FFlag::LuauVector2Constructor)
578
+ result += kBuiltinDefinitionVectorSrc_NoExtra_DEPRECATED ;
579
+ else if (FFlag::LuauVectorDefinitions && !FFlag::LuauVector2Constructor)
580
+ result += kBuiltinDefinitionVectorSrc_NoExtra_NoVector2Ctor_DEPRECATED ;
533
581
534
582
return result;
535
583
}
0 commit comments