internal static void DoAction(PulseActionEnum action, Game game, SystemEntityJumpPair jumpPair)
        {
            _jumpPair = jumpPair;
            _game     = game;

            EnumProcessorMap[action].DynamicInvoke(game, jumpPair);
        }
        internal static void DoAction(PulseActionEnum action, EntityManager manager, Entity entity)
        {
            _currentManager = manager;
            _currentEntity  = entity;

            EnumProcessorMap[action].DynamicInvoke(entity);
        }
Exemple #3
0
 /// <summary>
 /// this type of interupt will attempt to run the action processor on all entities within the system
 /// </summary>
 /// <param name="nextDateTime"></param>
 /// <param name="action"></param>
 internal void AddSystemInterupt(DateTime nextDateTime, PulseActionEnum action)
 {
     if (!EntityDictionary.ContainsKey(nextDateTime))
     {
         EntityDictionary.Add(nextDateTime, new Dictionary <PulseActionEnum, List <Entity> >());
     }
     if (!EntityDictionary[nextDateTime].ContainsKey(action))
     {
         EntityDictionary[nextDateTime].Add(action, new List <Entity>()); //null);
     }
 }
Exemple #4
0
 /// <summary>
 /// adds a system(non pausing) interupt, causing this system to process an entity with a given processor on a specific datetime
 /// </summary>
 /// <param name="nextDateTime"></param>
 /// <param name="action"></param>
 /// <param name="entity"></param>
 internal void AddEntityInterupt(DateTime nextDateTime, PulseActionEnum action, Entity entity)
 {
     if (!EntityDictionary.ContainsKey(nextDateTime))
     {
         EntityDictionary.Add(nextDateTime, new Dictionary <PulseActionEnum, List <Entity> >());
     }
     if (!EntityDictionary[nextDateTime].ContainsKey(action))
     {
         EntityDictionary[nextDateTime].Add(action, new List <Entity>());
     }
     EntityDictionary[nextDateTime][action].Add(entity);
 }
Exemple #5
0
 /// <summary>
 /// Adds an interupt where systems are interacting (ie an entity jumping between systems)
 /// this forces all systems to synch at this datetime.
 /// </summary>
 /// <param name="datetime"></param>
 /// <param name="action"></param>
 /// <param name="jumpPair"></param>
 internal void AddSystemInteractionInterupt(DateTime datetime, PulseActionEnum action, SystemEntityJumpPair jumpPair)
 {
     if (!EntityDictionary.ContainsKey(datetime))
     {
         EntityDictionary.Add(datetime, new Dictionary <PulseActionEnum, List <SystemEntityJumpPair> >());
     }
     if (!EntityDictionary[datetime].ContainsKey(action))
     {
         EntityDictionary[datetime].Add(action, new List <SystemEntityJumpPair>());
     }
     EntityDictionary[datetime][action].Add(jumpPair);
 }