fix(codegen): Adds codegen for embedded objects and timer fields (#686)
* Adds code genning for embedded objects. See `AquariumState` as an example. * Adds code genning for fields that are `Timer`. See `Aquarium` as an example. * Codegens aquariums * Fixes missing option for most primitive field types.
This commit is contained in:
parent
4c265562bb
commit
1323162628
126 changed files with 1287 additions and 1129 deletions
|
|
@ -1182,6 +1182,20 @@ namespace Server
|
|||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static T RandomElement<T>(this IList<T> list) => list.RandomElement(default);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static T TakeRandomElement<T>(this IList<T> list)
|
||||
{
|
||||
if (list.Count == 0)
|
||||
{
|
||||
return default;
|
||||
}
|
||||
|
||||
var index = Random(list.Count);
|
||||
var value = list[index];
|
||||
list.RemoveAt(index);
|
||||
return value;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static T RandomElement<T>(this IList<T> list, T valueIfZero) =>
|
||||
list.Count == 0 ? valueIfZero : list[Random(list.Count)];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue