Files
RobustToolbox/Robust.Shared/GameObjects/EntityEvents.cs
Pieter-Jan Briers 0c8f869cb4 Prediction (#1027)
2020-04-18 17:35:54 +02:00

42 lines
1.1 KiB
C#

using System;
using Robust.Shared.Players;
namespace Robust.Shared.GameObjects
{
public interface IEntityEventSubscriber { }
public delegate void EntityEventHandler<in T>(T ev);
public delegate void EntitySessionEventHandler<in T>(T msg, EntitySessionEventArgs args);
public class EntityEventArgs : EventArgs { }
public readonly struct EntitySessionEventArgs
{
public EntitySessionEventArgs(ICommonSession senderSession)
{
SenderSession = senderSession;
}
public ICommonSession SenderSession { get; }
}
internal readonly struct EntitySessionMessage<T>
{
public EntitySessionMessage(EntitySessionEventArgs eventArgs, T message)
{
EventArgs = eventArgs;
Message = message;
}
public EntitySessionEventArgs EventArgs { get; }
public T Message { get; }
public void Deconstruct(out EntitySessionEventArgs eventArgs, out T message)
{
eventArgs = EventArgs;
message = Message;
}
}
}