Пример #1
0
        internal bool CheckAuthorization(CompositionContext context)
        {
            IVisibilityProvider visibilityProvider = CustomVisibilityProvider
                                                     ?? context.Settings.VisibilityProvider;

            return(visibilityProvider.CheckAuthorization(this, context.HttpContext));
        }
Пример #2
0
        internal bool CheckRenderTarget(CompositionContext context, object renderTarget)
        {
            IVisibilityProvider visibilityProvider = CustomVisibilityProvider
                                                     ?? context.Settings.VisibilityProvider;

            return(visibilityProvider.CheckRenderType(this, context.HttpContext, renderTarget));
        }
Пример #3
0
        protected Node(ITitleProvider titleProvider, IVisibilityProvider visibilityProvider, IClickabilityProvider clickabilityProvider, IEnumerable<Node> children)
        {
            _titleProvider = titleProvider;
            _visibilityProvider = visibilityProvider;
            _clickabilityProvider = clickabilityProvider;

            Children = children;
            foreach (var child in Children) {
                child.Parent = this;
            }
        }
Пример #4
0
 private void RefreshLineOfSight(IVisibilityProvider visibilityProvider, int needRefreshBits)
 {
     foreach (ILineOfSightEntity lineOfSightEntity in visibilityProvider.LineOfSightEntities)
     {
         this.RefreshLineOfSight(lineOfSightEntity, needRefreshBits);
     }
     foreach (IVisibilityArea visibilityArea in visibilityProvider.VisibleAreas)
     {
         this.RefreshLineOfSight(visibilityArea, needRefreshBits);
     }
     visibilityProvider.VisibilityDirty = false;
 }
Пример #5
0
 private void GameEntityRepositoryService_GameEntityRepositoryChange(object sender, GameEntityRepositoryChangeEventArgs e)
 {
     if (e.Action == GameEntityRepositoryChangeAction.Add)
     {
         IGameEntity gameEntity;
         if (this.gameEntityRepositoryService.TryGetValue(e.GameEntityGuid, out gameEntity))
         {
             if (gameEntity is IGameEntityWithLineOfSight)
             {
                 Diagnostics.Assert(this.gameEntities != null);
                 IGameEntityWithLineOfSight gameEntityWithLineOfSight = gameEntity as IGameEntityWithLineOfSight;
                 gameEntityWithLineOfSight.LineOfSightData = new LineOfSightData();
                 this.gameEntities.Add(gameEntityWithLineOfSight);
                 MajorEmpire majorEmpire = gameEntityWithLineOfSight.Empire as MajorEmpire;
                 if (majorEmpire != null)
                 {
                     this.NeedRefreshBits |= majorEmpire.Bits;
                     this.NeedRefreshBits |= gameEntityWithLineOfSight.EmpireInfiltrationBits;
                 }
             }
             if (gameEntity is IGameEntityWithSharedSight)
             {
                 this.sharedSightGameEntities.Add(gameEntity as IGameEntityWithSharedSight);
                 this.forceRefreshSharedVibility = true;
             }
             if (gameEntity is IVisibilityProvider)
             {
                 Diagnostics.Assert(this.visibilityProviders != null);
                 IVisibilityProvider visibilityProvider = gameEntity as IVisibilityProvider;
                 if (visibilityProvider.LineOfSightEntities != null)
                 {
                     foreach (ILineOfSightEntity lineOfSightEntity in visibilityProvider.LineOfSightEntities)
                     {
                         lineOfSightEntity.LineOfSightData  = new LineOfSightData();
                         lineOfSightEntity.LineOfSightDirty = true;
                     }
                 }
                 visibilityProvider.VisibilityDirty = true;
                 this.visibilityProviders.Add(visibilityProvider);
                 return;
             }
         }
     }
     else if (e.Action == GameEntityRepositoryChangeAction.Remove)
     {
         IGameEntityWithLineOfSight gameEntityWithLineOfSight2 = this.gameEntities.Find((IGameEntityWithLineOfSight entity) => entity.GUID == e.GameEntityGuid);
         if (gameEntityWithLineOfSight2 != null)
         {
             Diagnostics.Assert(this.gameEntities.Count((IGameEntityWithLineOfSight entity) => entity.GUID == e.GameEntityGuid) <= 1, "There must be 1 instance max for a guid in the gameEntities list.");
             this.gameEntities.Remove(gameEntityWithLineOfSight2);
             MajorEmpire majorEmpire2 = gameEntityWithLineOfSight2.Empire as MajorEmpire;
             if (majorEmpire2 != null)
             {
                 this.NeedRefreshBits |= majorEmpire2.Bits;
                 this.NeedRefreshBits |= gameEntityWithLineOfSight2.EmpireInfiltrationBits;
             }
         }
         IGameEntityWithSharedSight item = this.sharedSightGameEntities.Find((IGameEntityWithSharedSight entity) => entity.GUID == e.GameEntityGuid);
         if (gameEntityWithLineOfSight2 != null)
         {
             this.sharedSightGameEntities.Remove(item);
             this.forceRefreshSharedVibility = true;
         }
         if (this.visibilityProviders != null)
         {
             IVisibilityProvider visibilityProvider2 = this.visibilityProviders.Find((IVisibilityProvider entity) => entity.GUID == e.GameEntityGuid);
             if (visibilityProvider2 != null)
             {
                 this.visibilityProviders.Remove(visibilityProvider2);
                 if (visibilityProvider2.VisibilityEmpires != null)
                 {
                     foreach (Empire empire in visibilityProvider2.VisibilityEmpires)
                     {
                         if (empire is MajorEmpire)
                         {
                             this.NeedRefreshBits |= empire.Bits;
                         }
                     }
                 }
                 if (ELCPUtilities.SpectatorMode)
                 {
                     foreach (int num in ELCPUtilities.EliminatedEmpireIndices)
                     {
                         this.NeedRefreshBits |= base.Game.Empires[num].Bits;
                     }
                 }
             }
         }
     }
 }