3
3
4
4
LUAU_FASTFLAGVARIABLE (LuauVectorDefinitionsExtra)
5
5
LUAU_FASTFLAG(LuauBufferBitMethods)
6
+ LUAU_FASTFLAG(LuauVector2Constructor)
6
7
7
8
namespace Luau
8
9
{
@@ -265,7 +266,7 @@ declare buffer: {
265
266
266
267
)BUILTIN_SRC" ;
267
268
268
- static const std::string kBuiltinDefinitionVectorSrc_DEPRECATED = R"BUILTIN_SRC(
269
+ static const std::string kBuiltinDefinitionVectorSrc_NoExtra_NoVector2Ctor_DEPRECATED = R"BUILTIN_SRC(
269
270
270
271
-- TODO: this will be replaced with a built-in primitive type
271
272
declare class vector end
@@ -291,7 +292,33 @@ declare vector: {
291
292
292
293
)BUILTIN_SRC" ;
293
294
294
- static const std::string kBuiltinDefinitionVectorSrc = R"BUILTIN_SRC(
295
+ static const std::string kBuiltinDefinitionVectorSrc_NoExtra_DEPRECATED = R"BUILTIN_SRC(
296
+
297
+ -- TODO: this will be replaced with a built-in primitive type
298
+ declare class vector end
299
+
300
+ declare vector: {
301
+ create: @checked (x: number, y: number, z: number?) -> vector,
302
+ magnitude: @checked (vec: vector) -> number,
303
+ normalize: @checked (vec: vector) -> vector,
304
+ cross: @checked (vec1: vector, vec2: vector) -> vector,
305
+ dot: @checked (vec1: vector, vec2: vector) -> number,
306
+ angle: @checked (vec1: vector, vec2: vector, axis: vector?) -> number,
307
+ floor: @checked (vec: vector) -> vector,
308
+ ceil: @checked (vec: vector) -> vector,
309
+ abs: @checked (vec: vector) -> vector,
310
+ sign: @checked (vec: vector) -> vector,
311
+ clamp: @checked (vec: vector, min: vector, max: vector) -> vector,
312
+ max: @checked (vector, ...vector) -> vector,
313
+ min: @checked (vector, ...vector) -> vector,
314
+
315
+ zero: vector,
316
+ one: vector,
317
+ }
318
+
319
+ )BUILTIN_SRC" ;
320
+
321
+ static const std::string kBuiltinDefinitionVectorSrc_NoVector2Ctor_DEPRECATED = R"BUILTIN_SRC(
295
322
296
323
-- While vector would have been better represented as a built-in primitive type, type solver class handling covers most of the properties
297
324
declare class vector
@@ -321,16 +348,56 @@ declare vector: {
321
348
322
349
)BUILTIN_SRC" ;
323
350
351
+ static const std::string kBuiltinDefinitionVectorSrc = R"BUILTIN_SRC(
352
+
353
+ -- While vector would have been better represented as a built-in primitive type, type solver class handling covers most of the properties
354
+ declare class vector
355
+ x: number
356
+ y: number
357
+ z: number
358
+ end
359
+
360
+ declare vector: {
361
+ create: @checked (x: number, y: number, z: number?) -> vector,
362
+ magnitude: @checked (vec: vector) -> number,
363
+ normalize: @checked (vec: vector) -> vector,
364
+ cross: @checked (vec1: vector, vec2: vector) -> vector,
365
+ dot: @checked (vec1: vector, vec2: vector) -> number,
366
+ angle: @checked (vec1: vector, vec2: vector, axis: vector?) -> number,
367
+ floor: @checked (vec: vector) -> vector,
368
+ ceil: @checked (vec: vector) -> vector,
369
+ abs: @checked (vec: vector) -> vector,
370
+ sign: @checked (vec: vector) -> vector,
371
+ clamp: @checked (vec: vector, min: vector, max: vector) -> vector,
372
+ max: @checked (vector, ...vector) -> vector,
373
+ min: @checked (vector, ...vector) -> vector,
374
+
375
+ zero: vector,
376
+ one: vector,
377
+ }
378
+
379
+ )BUILTIN_SRC" ;
380
+
324
381
std::string getBuiltinDefinitionSource ()
325
382
{
326
383
std::string result = kBuiltinDefinitionLuaSrcChecked ;
327
384
328
385
result += FFlag::LuauBufferBitMethods ? kBuiltinDefinitionBufferSrc : kBuiltinDefinitionBufferSrc_DEPRECATED ;
329
386
330
387
if (FFlag::LuauVectorDefinitionsExtra)
331
- result += kBuiltinDefinitionVectorSrc ;
388
+ {
389
+ if (FFlag::LuauVector2Constructor)
390
+ result += kBuiltinDefinitionVectorSrc ;
391
+ else
392
+ result += kBuiltinDefinitionVectorSrc_NoVector2Ctor_DEPRECATED ;
393
+ }
332
394
else
333
- result += kBuiltinDefinitionVectorSrc_DEPRECATED ;
395
+ {
396
+ if (FFlag::LuauVector2Constructor)
397
+ result += kBuiltinDefinitionVectorSrc_NoExtra_DEPRECATED ;
398
+ else
399
+ result += kBuiltinDefinitionVectorSrc_NoExtra_NoVector2Ctor_DEPRECATED ;
400
+ }
334
401
335
402
return result;
336
403
}
0 commit comments