Beispiel #1
0
    public void ForeachActorsBreak(SceneManagement.Coordinate coord, SceneManagement.Process_Bool proc)
    {
        if (coord.X == -1 || coord.Y == -1)
        {
            return;
        }
        this.invokeIndex++;
        int num = coord.Y * this.TileCountX + coord.X;

        for (int i = 0; i < coord.NumY; i++)
        {
            for (int j = 0; j < coord.NumX; j++)
            {
                List <SceneManagement.Node> list = this.tiles[num + j].nodes;
                int count = list.get_Count();
                for (int k = 0; k < count; k++)
                {
                    SceneManagement.Node node = list.get_Item(k);
                    if (node.owner && node.curInvokeIdx != this.invokeIndex)
                    {
                        node.curInvokeIdx = this.invokeIndex;
                        if (!proc(ref node.owner))
                        {
                            return;
                        }
                    }
                }
            }
            num += this.TileCountX;
        }
    }
 private void Awake()
 {
     this._actorTestCache      = new PoolObjHandle <ActorRoot> [this.Capacity];
     this._actorTormvCache     = new uint[this.Capacity];
     this.m_updateTimer        = this.UpdateInterval;
     this._targetActorTypeMask = 0;
     if (this.TargetActorTypes != null)
     {
         for (int i = 0; i < this.TargetActorTypes.Length; i++)
         {
             this._targetActorTypeMask |= 1 << (int)this.TargetActorTypes[i];
         }
     }
     this._targetActorCampMask = 0;
     if (this.TargetActorCamps != null)
     {
         for (int j = 0; j < this.TargetActorCamps.Length; j++)
         {
             this._targetActorCampMask |= 1 << (int)this.TargetActorCamps[j];
         }
     }
     this._targetActorSubTypeMask = 0;
     if (this.TargetActorSubTypes != null)
     {
         for (int k = 0; k < this.TargetActorSubTypes.Length; k++)
         {
             this._targetActorSubTypeMask |= 1 << this.TargetActorSubTypes[k];
         }
     }
     this.BuildTriggerWrapper();
     this.BuildInternalWrappers();
     this._curCoolingTime   = (this.CoolingAtStart ? this.FisrtCoolDownTime : this.CoolDownTime);
     this._coolingDown      = this.CoolingAtStart;
     this._curCoolDownCount = this.CoolDownCount;
     this.m_coordHandler    = new SceneManagement.Process_Bool(this.FilterCoordActor);
 }