diff --git a/encompass-cs/Collections/MessageStore.cs b/encompass-cs/Collections/MessageStore.cs index 632cfd3..8495966 100644 --- a/encompass-cs/Collections/MessageStore.cs +++ b/encompass-cs/Collections/MessageStore.cs @@ -33,9 +33,9 @@ namespace Encompass Lookup().AddIgnoringTimeDilation(message, time); } - public TMessage First() where TMessage : struct, IMessage + public ref readonly TMessage First() where TMessage : struct, IMessage { - return Lookup().First(); + return ref Lookup().First(); } public Span All() where TMessage : struct, IMessage diff --git a/encompass-cs/Collections/TypedMessageStore.cs b/encompass-cs/Collections/TypedMessageStore.cs index 3e8d815..f5bd150 100644 --- a/encompass-cs/Collections/TypedMessageStore.cs +++ b/encompass-cs/Collections/TypedMessageStore.cs @@ -78,9 +78,9 @@ namespace Encompass _delayedStoreIgnoringTimeDilation.Add((message, time)); } - public TMessage First() + public ref readonly TMessage First() { - return _store[0]; + return ref _store[0]; } public bool Any() diff --git a/encompass-cs/Engine.cs b/encompass-cs/Engine.cs index d98fe87..b0aa6e5 100644 --- a/encompass-cs/Engine.cs +++ b/encompass-cs/Engine.cs @@ -731,10 +731,10 @@ namespace Encompass /// Efficiently reads a single Message of a given type that references a given Entity. /// It is recommended to use this method in conjunction with SomeMessageWithEntity to prevent errors. /// - protected TMessage ReadMessageWithEntity(Entity entity) where TMessage : struct, IMessage, IHasEntity + protected ref readonly TMessage ReadMessageWithEntity(Entity entity) where TMessage : struct, IMessage, IHasEntity { CheckMessageRead(); - return _messageManager.WithEntitySingular(entity.ID); + return ref _messageManager.WithEntitySingular(entity.ID); } ///