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);
                }
            }
        }
Example #2
0
        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;
            }
        }