protected override void Update(float dt) { Vector3 zero = Vector3.zero; for (EntityRenderNode entityRenderNode = this.nodeList.Head; entityRenderNode != null; entityRenderNode = entityRenderNode.Next) { Vector3 vector = zero; SmartEntity smartEntity = (SmartEntity)entityRenderNode.Entity; GameObjectViewComponent gameObjectViewComp = smartEntity.GameObjectViewComp; StateComponent stateComp = smartEntity.StateComp; EntityState rawState = stateComp.RawState; if (rawState == EntityState.Moving) { PathView pathView = smartEntity.PathingComp.PathView; if (pathView != null) { pathView.TimeOnPathSegment += dt; vector = this.entityRenderController.MoveGameObject(gameObjectViewComp, pathView, smartEntity.SizeComp.Width); } } if (rawState != EntityState.Dying) { this.entityRenderController.RotateGameObject(smartEntity, vector.x, vector.z, dt); } else if (smartEntity.TroopComp != null) { gameObjectViewComp.UpdateAllAttachments(); } if (smartEntity.TroopComp != null || smartEntity.DroidComp != null) { bool isAbilityModeActive = smartEntity.TroopComp != null && smartEntity.TroopComp.IsAbilityModeActive; this.entityRenderController.UpdateAnimationState(gameObjectViewComp, stateComp, isAbilityModeActive); } } }
public void SetSpeed(float speed) { NodeList <EntityRenderNode> nodeList = Service.Get <EntityController>().GetNodeList <EntityRenderNode>(); for (EntityRenderNode entityRenderNode = nodeList.Head; entityRenderNode != null; entityRenderNode = entityRenderNode.Next) { this.UpdateAnimationSpeed(entityRenderNode.View, speed); } NodeList <TrackingRenderNode> nodeList2 = Service.Get <EntityController>().GetNodeList <TrackingRenderNode>(); for (TrackingRenderNode trackingRenderNode = nodeList2.Head; trackingRenderNode != null; trackingRenderNode = trackingRenderNode.Next) { trackingRenderNode.TrackingView.Speed = speed; } }