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
|
|
@ -13,6 +13,7 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
|
||||
*************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
|
|
@ -85,6 +86,33 @@ namespace Server
|
|||
entity.MarkDirty();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void Stop(this ISerializable entity, Timer timer)
|
||||
{
|
||||
timer?.Stop();
|
||||
entity.MarkDirty();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void Start(this ISerializable entity, Timer timer)
|
||||
{
|
||||
timer?.Start();
|
||||
entity.MarkDirty();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void Restart(this ISerializable entity, Timer timer, TimeSpan delay, TimeSpan interval)
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.Stop();
|
||||
timer.Delay = delay;
|
||||
timer.Interval = interval;
|
||||
timer.Start();
|
||||
entity.MarkDirty();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void Add<T>(this ISerializable entity, ref List<T> list, T value)
|
||||
{
|
||||
|
|
@ -131,5 +159,13 @@ namespace Server
|
|||
Utility.Clear(ref dict);
|
||||
entity.MarkDirty();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void Stop(this ISerializable entity, ref Timer timer)
|
||||
{
|
||||
timer?.Stop();
|
||||
timer = null;
|
||||
entity.MarkDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue