From 8ec278035619cb66bfeb7ed653e9a89932002f59 Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Wed, 16 Mar 2022 00:33:38 -0700 Subject: [PATCH] add singular ReadMessage to System --- src/MessageDepot.cs | 7 ++++++- src/MessageStorage.cs | 5 +++++ src/System.cs | 7 ++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/MessageDepot.cs b/src/MessageDepot.cs index a5a66e9..ef91f6d 100644 --- a/src/MessageDepot.cs +++ b/src/MessageDepot.cs @@ -24,11 +24,16 @@ internal class MessageDepot return Lookup().Some(); } - public ReadOnlySpan Read() where TMessage : struct + public ReadOnlySpan ReadAll() where TMessage : struct { return Lookup().All(); } + public TMessage ReadFirst() where TMessage : struct + { + return Lookup().First(); + } + public void Clear() { foreach (var storage in storages.Values) diff --git a/src/MessageStorage.cs b/src/MessageStorage.cs index bf180cc..8bfe24f 100644 --- a/src/MessageStorage.cs +++ b/src/MessageStorage.cs @@ -38,6 +38,11 @@ internal class MessageStorage : MessageStorage where TMessage : struct return new ReadOnlySpan(messages, 0, count); } + public TMessage First() + { + return messages[0]; + } + public override void Clear() { count = 0; diff --git a/src/System.cs b/src/System.cs index cc00c8e..1c166a1 100644 --- a/src/System.cs +++ b/src/System.cs @@ -38,7 +38,12 @@ public abstract class System : EntityComponentReader protected ReadOnlySpan ReadMessages() where TMessage : struct { - return MessageDepot.Read(); + return MessageDepot.ReadAll(); + } + + protected TMessage ReadMessage() where TMessage : struct + { + return MessageDepot.ReadFirst(); } protected bool SomeMessage() where TMessage : struct