/// <summary> /// Called by the network engine when this entity is spawned with an <see cref="EntityCreateMessage"/>. /// </summary> /// <param name="gameContext"></param> /// <param name="updateContext"></param> /// <param name="identifier"></param> /// <param name="initialFrameTick"></param> public virtual void ReceiveNetworkIDFromServer(IGameContext gameContext, IUpdateContext updateContext, int identifier, int initialFrameTick) { if (EnabledInterfaces.Contains(typeof(INetworkIdentifiable))) { _networkIdentifiableClient.Invoke(gameContext, updateContext, identifier, initialFrameTick); } }
/// <summary> /// Called by the network engine when this entity is spawned with an <see cref="EntityPredictMessage"/>. /// </summary> /// <param name="serverContext"></param> /// <param name="updateContext"></param> /// <param name="client"></param> /// <param name="predictedIdentifier"></param> public virtual void ReceivePredictedNetworkIDFromClient(IServerContext serverContext, IUpdateContext updateContext, MxClient client, int predictedIdentifier) { if (EnabledInterfaces.Contains(typeof(INetworkIdentifiable))) { _networkIdentifiableServer.Invoke(serverContext, updateContext, client, predictedIdentifier); } }
/// <summary> /// Handles events from an event engine. This implementation propagates events through the /// component hierarchy to components that implement <see cref="IEventfulComponent"/>. /// </summary> /// <param name="context">The current game context.</param> /// <param name="eventEngine">The event engine from which the event was fired.</param> /// <param name="event">The event that is to be handled.</param> /// <returns>Whether or not the event was consumed.</returns> public virtual bool Handle(IGameContext context, IEventEngine <IGameContext> eventEngine, Event @event) { if (EnabledInterfaces.Contains(typeof(IEventfulComponent))) { var state = new EventState { Consumed = false }; _handleEvent.Invoke(context, eventEngine, @event, state); return(state.Consumed); } return(false); }
public bool Handle(IGameContext context, IEventEngine <IGameContext> eventEngine, Event @event) { if (EnabledInterfaces.Contains(typeof(IEventListener <IGameContext>))) { foreach (var child in _node.Children.Select(x => x.UntypedValue).OfType <IEventListener <IGameContext> >()) { if (child.Handle(context, eventEngine, @event)) { return(true); } } } return(false); }