コード例 #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;
        }
    }
コード例 #2
0
        private void AttachSMNode()
        {
            if (this.TheActorMeta.ActorType != ActorTypeDef.Invalid)
            {
                DebugHelper.Assert(this.SMNode == null);
                this.SMNode = ClassObjPool <SceneManagement.Node> .Get();

                this.SMNode.owner = this.SelfPtr;
                this.SMNode.Attach();
            }
        }
コード例 #3
0
 public override void OnUse()
 {
     base.OnUse();
     this.name               = string.Empty;
     this.isMovable          = true;
     this.isRotatable        = true;
     this.myTransform        = null;
     this.ActorMesh          = null;
     this.ActorMeshAnimation = null;
     this._bVisible          = true;
     this._bInitVisibleDelay = 0;
     this._bInCamera         = false;
     this.ObjID              = 0u;
     this.TheActorMeta       = default(ActorMeta);
     this.TheStaticData      = default(ActorStaticData);
     this.SelfPtr.Release();
     this.ObjLinker                   = null;
     this.ActorControl                = null;
     this.ActorAgent                  = null;
     this.MovementComponent           = null;
     this.SkillControl                = null;
     this.ValueComponent              = null;
     this.HurtControl                 = null;
     this.HudControl                  = null;
     this.AnimControl                 = null;
     this.BuffHolderComp              = null;
     this.MatHurtEffect               = null;
     this.ShadowEffect                = null;
     this.EquipComponent              = null;
     this.DefaultAttackModeControl    = null;
     this.LockTargetAttackModeControl = null;
     this.PetControl                  = null;
     this.OriginalActorMesh           = null;
     this.OriginalMeshAnim            = null;
     this.shape = null;
     this.slotList.Clear();
     this.bChildUpdate             = false;
     this.SMNode                   = null;
     this._location                = VInt3.zero;
     this._forward                 = VInt3.forward;
     this._rotation                = Quaternion.identity;
     this.groundY                  = 0;
     this.hasReachedNavEdge        = false;
     this.pickFlyY                 = 0;
     this.AttackOrderReady         = true;
     this.bOneKiller               = false;
     this.CharInfo                 = null;
     this.HorizonMarker            = null;
     this.BornPos                  = VInt3.zero;
     this.isRecycled               = false;
     this.BornPos                  = VInt3.zero;
     this.PositionRecords          = null;
     this.PositionRecordsLastStamp = 0f;
 }
コード例 #4
0
    private void AddToTile(SceneManagement.Node node, ref SceneManagement.Coordinate coord)
    {
        int num = coord.Y * this.TileCountX + coord.X;

        for (int i = 0; i < coord.NumY; i++)
        {
            for (int j = 0; j < coord.NumX; j++)
            {
                this.tiles[num + j].nodes.Add(node);
            }
            num += this.TileCountX;
        }
    }
コード例 #5
0
    private void RemoveFromTile(SceneManagement.Node node, ref SceneManagement.Coordinate coord)
    {
        if (coord.X == -1 || coord.Y == -1)
        {
            return;
        }
        int num = coord.Y * this.TileCountX + coord.X;

        for (int i = 0; i < coord.NumY; i++)
        {
            for (int j = 0; j < coord.NumX; j++)
            {
                this.tiles[num + j].nodes.Remove(node);
            }
            num += this.TileCountX;
        }
    }