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 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(); } }
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; }
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; } }
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; } }