Esempio n. 1
0
 /// <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);
     }
 }
Esempio n. 2
0
 /// <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);
     }
 }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        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);
        }