mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-06 17:58:05 +02:00
* Added new ComponentEventBus, combined it with IEventBus. * Removed all traces of IEntity from ComponentDependencies. Removed IEntityManager dependency from ComponentManager. * Added entity create/delete events to IEntityManager. * ComponentEvents now use EntitySystemMessages instead of their custom ComponentEvent class. * Component events are now just overloads of entity events. * Removed obsolete EntitySystemMessage, now everything uses the base EntityEventArgs. * Add a bool argument for if the message should be broadcast as well as directed. Fix ordering and init issues of events in EntityManager. * Changed names from Component/Entity events to Directed/Broadcast. * Fix bugs and unit tests.
27 lines
973 B
C#
27 lines
973 B
C#
using Robust.Client.GameStates;
|
|
using Robust.Client.Player;
|
|
using Robust.Shared.GameObjects;
|
|
using Robust.Shared.IoC;
|
|
using Robust.Shared.Utility;
|
|
|
|
namespace Robust.Client.GameObjects
|
|
{
|
|
public static class EntityManagerExt
|
|
{
|
|
public static void RaisePredictiveEvent<T>(this IEntityManager entityManager, T msg)
|
|
where T : EntityEventArgs
|
|
{
|
|
var localPlayer = IoCManager.Resolve<IPlayerManager>().LocalPlayer;
|
|
DebugTools.AssertNotNull(localPlayer);
|
|
|
|
var sequence = IoCManager.Resolve<IClientGameStateManager>().SystemMessageDispatched(msg);
|
|
entityManager.EntityNetManager.SendSystemNetworkMessage(msg, sequence);
|
|
|
|
var eventArgs = new EntitySessionEventArgs(localPlayer!.Session);
|
|
|
|
entityManager.EventBus.RaiseEvent(EventSource.Local, msg);
|
|
entityManager.EventBus.RaiseEvent(EventSource.Local, new EntitySessionMessage<T>(eventArgs, msg));
|
|
}
|
|
}
|
|
}
|