Exemple #1
0
        private void EnterSituation(string sitName)
        {
            // setup variable, setup one time var, always var
            var prevSitName = m_CurrSitName;

            try
            {
                m_CurrSitName = sitName;

                CurrentSituation = Tree.SituationTables[sitName];
            }
            catch (Exception exp)
            {
                FrameLogger.LogError(string.Format(exp.Message + ", SitName {0} not found", sitName));
            }

            ////
            OnEnterSituation.Invoke(prevSitName, sitName);

            // the first time
            if (!VisitedSituation.Contains(sitName))
            {
                VisitedSituation.Add(sitName);

                // execute one time event
                try
                {
                    foreach (var action in CurrentSituation.OneTimeSetValueAction)
                    {
                        action.Operate();
                    }
                }
                catch (Exception ep)
                {
                    FrameLogger.LogError(ep.Message + ": " + ep.StackTrace);
                }
            }

            try
            {
                // execute always event
                foreach (var action in CurrentSituation.AlwaysSetValueAction)
                {
                    action.Operate();
                }
            }
            catch (Exception ep)
            {
                FrameLogger.LogError(ep.Message + ": " + ep.StackTrace);
            }
        }
Exemple #2
0
 public override void PreRender()
 {
     foreach (var pos in Node.Bounds.AllPositionsWithin)
     {
         var dataPos = pos - Node.Bounds.Position;
         try
         {
             Node.ParentCanvas.SetPixel(Data[dataPos.Y][dataPos.X], pos);
         }
         catch
         {
             FrameLogger.LogError(Data[0].ToString());
             FrameLogger.LogError("Error - " + dataPos.ToString());
         }
     }
 }